01/10/2018, 11:25

Vim hay Vi - Cùng thay đổi thế giới với VIM

Lời nói đầu:

Bài viết này được viết vào thời điểm tác giả rảnh không có gì làm và cũng không biết làm gì, vậy nên nó được coi là thành quả của một quá trình đốt thời gian không mấy hiệu quả.
Đừng để ý tên tiêu đề, nó chả có ý nghĩa gì cả đâu, mình cũng chả có hứng với việc thay đổi thế giới, bản thân ngày mai ăn gì còn chưa biết thì quan tâm xã hội làm gì cho mệt, hehe.

Phân tích tiêu đề:

Vim hay Vi ?? : D ??
Vâng, 2 thằng nó thực chất là 1, vậy nên tiêu đề này cũng không có gì để bàn ở đây cả.

Vim là gì?
Vim là một thứ không ăn được, không ngửi được, còn bị chê.
Vậy mục đích bài này là gì?

Kết thúc phần chém gió, vào nội dung chính

Vim là một editor, vâng, editor, không hơn không kém, nó chỉ là phần mềm chạy trên nền termial/console, vậy mà không khác gì các GUI app cả. Chìa khoá để VIM có thể hoạt động như vậy là nhờ thư viện NCURSES, tham khảo cách làm việc tại blog của bác DevNT.

Vâng, lí do tôi chọn vim là vì:

  • Miễn phí
  • Dễ tuỳ biến
  • CỰC kì nhẹ
  • Không bị thông báo yêu cầu update như Notepad++
  • Không lằng nhằng như Sublime Text (gì gì đó)
  • Không thừa thãi chức năng vứt đi như Emacs (gì gì đó)
  • Không ngốn ram như các IDE: VS, Eclipse (gì gì đó),…
  • Chỉ cần dùng bàn phím là đủ (điều tôi hằng mong ước vào mỗi mùa hè, tay sờ vào chuột xong lại đưa xuống gõ phím, một sự lãng phí thời gian khủng khiếp của giai đoạn này)
  • Dùng được trên Linux(Ubuntu)
  • … (sẽ liệt kê thêm khi nghĩ ra các lí do anti khác)

Để sử dụng được vim, mặc định các distro của Linux đều được trang bị sẵn, chỉ việc gõ vi hoặc vim là bạn có thể xài ngon lành, trên windows cũng có sẵn phiên bản cài trên PC

Màn hình khởi động:

Vâng, ảnh trên chia làm 2 màn hình là hậu quả của việc tác giả lười sử dụng tool cắt ảnh sau khi Print Screen, cứ thế upload lên.

Màn hình bên trái là vim mặc định không có bất kì plugin nào, vậy còn màn hình bên phải? Vâng, nó là vim, sau khi trang bị đầy đủ các plugin cần thiết, nó không còn là vim của ngày nào nữa, nó đã trở thành công cụ để giúp bạn đi thay đổi thế giới. hehe.

Theo thống kê trên StackOverflow thì đến hơn 1 triệu người dùng vim không biết tắt kiểu gì, các bạn bật vim xong không biết tắt kiểu gì mình cũng hướng dẫn luôn, các bạn gõ

:q
<Enter>

Nếu thoát ra được thì bạn rất có duyên với vim rồi đấy.

Thôi, bài này mục tiêu của mình không phải hướng dẫn các bạn các bước cơ bản dùng vim, những bài này nếu bạn có hứng dùng vim thì hãy google, và tự học, mình không có rảnh đến thế, hehe.

Bài này mục đích mình viết là để giới thiệu các plugin giúp các bạn lập trình trên vim thoải mái, và focus vào các dev C/C++

Nội dung chính

Đầu tiên là công cụ quản lí package của vim.
Trong vim có khá nhiều công cụ này, nó thực chất cũng là 1 plugin, được viết ra với sứ mệnh giúp cài các plugin khác, nói chung nó khá vô dụng, như cái IE vậy, sinh ra là để cài Chrome, FireFox,…

Ở nội dung bài này mình khuyên dùng Pathogen

Tiếp đến là các plugin:
Vì lười viết nên các bạn vào trực tiếp link dưới đây, xem các plugin rồi clone vào ~/.vim/bundle/ nhé
https://github.com/HadesD/dotfiles/tree/master/.vim/bundle

Một phần quan trọng cần chú ý

Dùng vim, đừng nên nhét tất cả vào .vimrc, nó sẽ khiến bạn đau não mỗi khi muốn sửa một nội dung mà mình đã thêm vào, rất là đau não.
Vim có chế độ auto load các file trong thư mục .vim/plugin/, vậy nên, khi cài thêm plugin, muốn customize một thứ gì đó, hãy tạo 1 file như .vim/plugin/settings/<pluginname>.vim sau đó viết nội dung cần edit, giả sử đến khi nào bạn không dùng plugin đó, chỉ cần xoá file đó đi là xong, không ảnh hưởng tới toàn cục.
Dưới đây là phần mình tự làm(theo tư duy của mình)

GitHub

HadesD/dotfiles

dotfiles - List customize [dot] files config.


Các file bắt đầu bằng _ là cài đặt chung, nó sẽ được load trước các file không có dấu này.
Mình chia phần cài đặt UIs, keymaps,… riêng ra các file khác nhau, đến lúc muốn thêm/xoá cũng dễ dàng hơn.

Sau khi đọc đến đây thì bạn còn chờ gì mà không mở repo kia của mình rồi click give star đi nhỉ

Đại khái là như vậy.
Thân ái.

Kết thúc

Phan Bá Hải viết 13:39 ngày 01/10/2018

Mình cần vim đơn giản vì mình đang xài VPS, muốn có cái editor mạnh mạnh để code / deploy thẳng luôn server, khỏi git gủng, ftp gì cả, cùng lắm dùng git backup
Ngoài ra đang học C++ mà làm biếng mở VSC, đơn giản vì VSC giờ nó lại load lâu vãi chưởng rồi
P/S: Hèn gì lúc định coi thử setting kiểu gì mà mở file .vimrc thấy có 1 dòng duy nhất

Dark.Hades viết 13:27 ngày 01/10/2018

Nếu bạn xài 1 số trình Term hỗ trợ X-Server như MobaXTerm, bạn có thể chạy gedit, gvim, firefox trực tiếp trên server, và nó sẽ tạo 1 process trên máy PC của bạn, rất tiện dụng nếu không quen edit file qua FTP/nano/vim/…

Tynk Huynk viết 13:37 ngày 01/10/2018

Vâng, ảnh trên chia làm 2 màn hình là hậu quả của việc tác giả lười sử dụng tool cắt ảnh sau khi Print Screen, cứ thế upload lên.

Chuẩn, không thích cơ chế chụp màn hình của Ubuntu chút nào

Dark.Hades viết 13:36 ngày 01/10/2018

Windows cũng thế mà bác?
(Do máy mình cài 2 màn nên chụp nó chia thành 2 bên ấy mà)

Ubuntu nó không có tool pain mặc định, chụp xong nó lưu luôn file, ai muốn chỉnh thì vô edit, mình lười nên ko cắt :))

Windows chụp xong phải vào pain để paste clipboard rồi save, khá rách việc

Tynk Huynk viết 13:41 ngày 01/10/2018

à, chợt nhớ mình cũng đang xài màn hình có thêm unknown display

HK boy viết 13:41 ngày 01/10/2018

Windows chụp xong phải vào pain để paste clipboard rồi save, khá rách việc

Bác có hay dùng Snipping Tool không?

Phan Bá Hải viết 13:29 ngày 01/10/2018

Win Vista trở lên có thể dùng Windows + Print Screen để lưu file screenshot vào thư mục Pictures - > Screenshots

Dark.Hades viết 13:25 ngày 01/10/2018

Mình không, mà có xài tool tương tự, nó tự upload lên imgur, cũng không nhớ tên luôn :))

HK boy viết 13:26 ngày 01/10/2018

Linux Mint có trò Shift + Print Screen để chụp màn hình 1 khoảng trên màn hình.

Phan Bá Hải viết 13:35 ngày 01/10/2018

Mình xài ShareX để up lên puush, ngoài ra nó còn 1 đống tool khâc như ruler, color picker (color picker mà lại lưu clipboard mã rbg, không có hex ) ,…

Tynk Huynk viết 13:31 ngày 01/10/2018

Mà thím dùng VIM code gì thế, nghe danh nó lâu rồi mà chưa dùng

Dark.Hades viết 13:33 ngày 01/10/2018

Vim code gì cũng được, mình dùng nó để viết luận văn, thỉnh thoảng viết truyện kiếm hiệp để đăng báo.
Phét tí thôi, mình code C++ và sờ mó tí web.

viết 13:38 ngày 01/10/2018

e thấy bác quảng cáo vi trên comment lâu ồi, nay mới thấy bài đăng chính thức.

E thì dùng window, thi thoảng ssh vào server mới đụng vim nên là chưa thấy cái vim nào hoành tráng như hình của bác.
E đang tự hỏi là k biết vim có auto complete, hỗ trợ nhắc hàm, biến không? Có phím tắt để mà tự động duplicate 1 dòng code k? Có multi cursor, cho phép chỉnh nhiều chỗ 1 lần không?
Đây là 3 lý do chính e chuyển từ notepad sang sublime. Nếu vim làm đc thì e sẽ tự google thêm các tính năng e cần. Vì chả tội gì mà k chuyển sang cái nhẹ hơn lại còn free.

Cảm ơn bác :3

Dark.Hades viết 13:31 ngày 01/10/2018

Vim nó không thiếu 1 cái gì bạn ạ, từ việc nhỏ nhặt nhất là CTRL+P, đến điều khiển cả os từ vim, remote server, xem ảnh trên vim, chơi game trên vim, nói chung đâu nó cũng chơi được hết.
Nhưng để dùng được vim không phải 1-2 tiếng là dùng được

viết 13:40 ngày 01/10/2018

có vđ j đâu, nó mà mạnh thì gắng mà học, đâu phải vì khó mà bỏ. Cảm ơn bác, e sẽ tìm hiểu về thằng này, star cho bác :3

Kevin viết 13:35 ngày 01/10/2018

Like mạnh bác, mình cũng hay xài vim nhưng ko đủ kiên nhẫn để tới với các plugin để nâng tầm em nó. Cảm ơn bác chia sẻ

Dark.Hades viết 13:26 ngày 01/10/2018

Công nhận giai đoạn tìm plugin đầy chông gai thật :v
Cũng nể mình ngày ấy rảnh hết mức :))

Henry viết 13:33 ngày 01/10/2018

If you want to be a Vim enthusiast, You have to break up with your mouse.

Vũ Thanh viết 13:33 ngày 01/10/2018

Yeah yeah!! Vim Awesome Link gốc: https://vimawesome.com :))

Đào An viết 13:26 ngày 01/10/2018

Cũng học thử 1 lần mà thấy lằng nhằng quá lại trở về với VS code hix

Bài liên quan
0