Chào mừng các bạn đã đến với tập đầu tiên trong Series Vim toàn tập của mình. Trong series này, mình sẽ cùng các bạn tìm hiểu tất tần tật về Vim, cùng cấu hình những bước cơ bản đầu tiên và sau đó là đi sâu hơn từng plugin để phục vụ cho việc coding. Đảm bảo chỉ sau vài tuần làm quen bạn sẽ lả lướt trên Vim, vứt luôn con chuột 🤣
Mình sẽ chia nhỏ series này thành nhiều tập để các bạn dễ theo dõi. Trong tập 1 này, chúng ta sẽ tìm hiểu xem Vim là gì? Nó làm được những gì và tại sao lại chọn Vim như một code editor.
Let’s get started !
1. Vim là gì ?
Vim là một chất tẩy rửa bồn cầu siêu việt, tiêu diệt 99% vi khuẩn 😂 Đùa đấy, mình không nói đến cái này. Mà nó là cái này cơ 👇
Vim(Visual IMproved) là một text editor với cấu hình cao chạy trên môi trường TUI (Text-based User Interface). Vim được phát hành từ năm 1991 bởi Bram Moolenaar, ngôn ngữ viết nên là C và Vim Script.
Vim là một trình soạn thảo rất mạnh mẽ và phổ biến trên Unix và nó tồn tại trên hầu hết các hệ điều hành hiện nay.
Neovim là một bản cải tiến của Vim và hoàn toàn tương thích với các cấu hình của Vim. Được phát hành năm 2014, viết bởi ngôn ngữ Lua. Neovim cải thiện đáng kể tốc độ và giao diện của Vim.
Tìm hiểu thêm về vim tại: Vim Github Repository, Vim Website, Neovim
Trong Series này mình sẽ sử dụng Neovim trên Windows nhé. Các môi trường khác cũng tương tự thế, có một vài chỗ khác thì các bạn tìm hiểu thêm nhé 😎
2. Ưu điểm của Vim
Sau đây là một vài ưu điểm của Vim mà mình nhận thấy:
- Thao tác cực kỳ nhanh.
- Vim rất nhẹ, chạy trực tiếp trên terminal nên việc mở vim lên rất là nhanh chóng.
- Vim hoạt động trên cơ chế tối ưu việc sử dụng bàn phím. Nên bạn sẽ không cần sử dụng chuột trong quá trình chỉnh sửa văn bản hay code.
- Tiết kiệm rất nhiều thời gian, tối ưu công việc khi bạn đã quen với việc sử dụng vim để code.
- Tăng cảm hứng làm việc. Vim sẽ cho bạn cảm giác phê hơn do phải gõ phím nhiều hơn, bạn sẽ được lả lướt trên bàn phím như một “hét cơ” thực thụ 😂
- Vim cho bạn cảm giác làm chủ, chinh phục. Vim hoạt động theo cơ chế cài plugin, bạn cần gì thì tự tìm thêm plugin cài vào. Không có thì có thể tự code thêm plugin luôn.
- Vim hầu như làm được mọi thứ mà các code editor khác làm được như:
- Custom theme, syntax highlight ->vim-polyglot (bạn thoải mái chỉnh sửa màu nhé).
- Code suggestion / Auto complete -> coc-vim.
- Duyệt file -> NerdTree.
- Terminal trong Vim -> floaterm
- Debugger -> vim-spector
- Tìm kiếm, thay thế từ và file -> fzf
- Còn rất nhiều thứ khác như Linter, Reference, Refactor, Git blame, …
- Tận dụng được terminal vì Vim hoạt động trực tiếp trên terminal.
- Hỗ trợ môi trường không có GUI như server, một vài distro linux.
- Vim còn có cơ chế kết hợp các thao tác, khi bạn đã quen với Vim, bạn sẽ thấy rằng Vim chính là suy nghĩ của chúng ta “nghĩ gì gõ đó”. Từ đó, không cần phải nhớ quá nhiều thứ nữa.
- Ngầu 😎 Giữa người người nhà nhà dùng VSCode, bạn chỉ cần bật Vim lên làm màu tí đã thấy ngầu lồi rồi (làm màu ít thôi nhé) 😂
3. Nhược điểm của Vim
Nhược điểm lớn nhất của Vim chính là việc nó khá khó sử dụng với người mới. Một trong những câu hỏi vui nhiều nhất trên Stackoverflow là “Làm sao để tôi thoát khỏi Vim ?” 😑
Vim khó là vì nó đã thay đổi thói quen chỉnh sửa văn bản của chúng ta. Vim tối ưu cho việc bạn dùng hoàn toàn bàn phím khi chỉnh sửa văn bản thay vì sử dụng chuột để di chuyển con trỏ (bạn có thể dùng chuột bình thường nhé, nhưng hãy hạn chế làm thế khi học Vim).
Tuy kho plugin của vim khá đầy đủ nhưng vẫn có một vài tính năng chuyên biệt mà chỉ có những IDE chuyên biệt mới dùng được. Vì thế, đôi khi bạn cần cân nhắc xem Vim có phù hợp với tính chất công việc của bạn hay không.
4. Một vài lưu ý khi dùng Vim ?
Vim là text editor không phải IDE
Cũng giống như VSCode, Vim không phải IDE chuyên biệt như Visual Studio hay Eclipse. Bạn hoàn toàn có thể cài thêm các plugin để tích hợp và biến nó thành IDE nhưng có thể việc đó sẽ tốn thời gian và không tối ưu như các IDE có sẵn.
Nếu bạn đang dùng Sublime text hay VSCode thì bạn hoàn toàn có thể chuyển sang Vim một cách thoải mái, đặc biệt khi bạn là một Frontend Developer hoặc phải làm việc nhiều trên Server và môi trường CLI.
Đừng nản khi học Vim 🤪
Vim sẽ thay đổi hoàn toàn thói quen coding của bạn. Vì thế lúc đầu làm quen bạn sẽ code rất chậm, gõ lộn tới lộn lui.
Mình cũng từng là đứa nghiện VSCode, đã từng chuyển qua Vim thử rồi lại bỏ, quay lại với VSCode thân yêu. Nhưng một thời gian sau quay lại và mình đã chinh phục được bé Vim bé bỏng này.
Mình có lời khuyên là bạn nên học Vim khi thật sự rảnh (tức là không ở trong giai đoạn chạy deadline cho dự án). Lúc đấy bạn sẽ dành hoàn toàn thời gian cho Vim, ép bản thân mình làm chủ được Vim (tốn khoảng 2 tuần thôi 😆).
Một vài tips chinh phục bé Vim
Hãy ghi chú các câu lệnh thường dùng ra 1 file nào đó hoặc 1 tờ giấy, để nó ngay bàn làm việc. Lỡ quên thì ngó sang xem cho nhanh (Hãy cố gắng gom nhóm các chức năng tương tự lại với nhau để dễ nhớ hơn nhé. Cái này ở bài sau mình sẽ nói chi tiết).
Hãy học Vim bằng cách code thực tế một dự án cá nhân nho nhỏ, Việc này sẽ giúp bạn biết được mình cần những plugin gì, những lệnh nào hay dùng để mapping lại làm shortcut.
Đừng copy file config vim của người khác mà không hiểu nó là gì
Điều này sẽ giúp bạn hiểu rõ được vim của mình hơn, có hứng thú hơn và đặc biệt là bạn có thể tự thêm bớt, chỉnh sửa như ý muốn mà không phụ thuộc vào người khác.
Tạm kết
Mình đã chinh phục được Vim, tuy không được như mấy anh hét cơ Ấn Độ nhưng mình cảm thấy được sự lợi hại của Vim (Đặc biệt là đỡ tiền mua chuột vì không còn đập chuột mỗi lần fix bug 😵).
Hãy thử một lần xem nào, mình tin bạn cũng sẽ chinh phục được em nó, biết đâu lại nghiện giống mình haha. Bây giờ thì mình thực sự đã không thể “thoát khỏi Vim” được rồi.
Cảm ơn bạn đã đọc bài viết này ❤
Series Vim toàn tập:
- Tất cả các tập ở đây