Được và mất gì khi sử dụng Vim?


Nếu tựa đề bài viết làm bạn nghĩ tới một sản phẩm thân thiện trong nhà vệ sinh của các hộ gia đình thì bạn đã lầm. Vim mà tôi nhắc tới ở đây là một text editor được yêu thích bởi nhiều lập trình viên bên cạnh VSCode, Sublime Text hay Notepad. (tôi đùa vụ Notepad đấy)

Vim là gì?

Vim là viết tắt của Vi-iMproved, có nghĩa là một phiên bản cải tiến của Vi, một text editor khác, là tên được lấy từ 2 chữ cái đầu của từ Visual. Nói thẳng ra thì những lập trình viên có cách đặt tên thật lạ nhưng chúng ta phải chấp nhận thôi. Và đây chính là hình ảnh của Vim mà tôi nhắc tới.

À, thật ra là, đây mới là hình ảnh của Vim trên máy tôi

Sự đặc biệt của Vim

Trước đây, khi bắt đầu học Python, một ngôn ngữ lập trình thông dịch khiến việc chạy code từ command line là một cách dễ dàng và nhanh gọn hơn thay vì phải sử dụng một IDE và chờ đợi nó cài đặt các kiểu. Tôi cũng cần chọn một text editor phù hợp cho việc viết code. Không phủ nhận rằng VSCode của Microsoft rất tuyệt vời và hữu dụng, tôi đã sử dụng nó một thời gian và rất thích nó. Nhưng không may, Vim mới chính là text editor mà tôi muốn gắn bó lâu dài. Vậy, Vim có gì mà làm cho nó đặt biệt đến thế. Đây là những gì tôi đúc kết được sau một thời gian sử dụng nó.

Nó xấu kinh hồn

Thật ra, cả hai tấm hình ở trên đều là giao diện của Vim, khác nhau ở chỗ bức ảnh đầu tiên chính là giao diện lần đầu tiên tôi mở nó lên và bức ảnh thứ hai là giao diện sau khi tôi đã "trang trí" cho nó một chút. Tại sao tôi lại nói đến việc này?

Cái tôi muốn nhấn mạnh ở đây là tính tùy biến cao của Vim, người dùng có thể làm Vim trông như thế nào tùy ý họ muốn. Bạn có thể nhìn 10 lập trinh viên khác nhau sử dụng Vim và không một ai có Vim giống nhau cả. Mỗi người đều có một cách "trang trí" Vim khác nhau và điều đó khiến cho text editor của họ là độc nhất. Và các lập trình viên thì lại thích điều này.

Nó nhanh và nhẹ

Nếu bạn có vim, bạn chỉ cần gõ một lệnh vim <tên file> và phần mềm sẽ hiện lên ngay lập tức. Một trong những lý do khiến tôi chuyển từ VSCode sang Vim đó chính là thời gian đợi. Khi VSCode khởi động sẽ là một loạt chờ update và khởi động lại, tôi biết nó là cần thiết để có một phầm mềm ổn dịnh nhưng nó cũng làm phiền tôi khi những gì tôi cần chỉ là nhanh chóng chỉnh sửa file.

Quên con chuột của bạn đi

Nếu bạn thấy một lập trình viên đang làm việc với một con chuột lật ngửa thì bạn cũng có thể phần nào chắc chắn rằng anh ta sử dụng Vim đấy. Những thao tác trong Vim như di chuyển con trỏ, tô đen hay copy paste đều được làm thông qua bàn phím. Con chuột của bạn sẽ gần như ... vô dụng khi làm việc với Vim. Cũng chính vì thế nên bạn cũng phải học một vài lệnh cơ bản để có thể làm được điều mình muốn. Bao gồm cả việc thoát ra khỏi Vim thay vì mắc kẹt trong đó. (Nhân tiện luôn, đó là :q)

Đừng như anh chàng này.

Quá trình học Vim

Lúc đầu, tôi thấy khó chịu và có đôi chút chậm lại khi phải nhớ lệnh nào để xóa, lệnh nào để tiến hành tìm kiếm hay copy và paste. Đó là điều bình thường và tôi cũng tin rằng bạn sẽ trải qua nó trong quãng thời gian đầu. Nhưng cái gì cũng có giá của nó, khi nắm được ngôn ngữ của Vim, bạn sẽ thấy mình làm được những những công việc edit phức tạp một cách nhanh chóng trong khi bạn sẽ mất nhiều thời gian hơn với những text editor khác.
Tôi đã làm một biểu đồ nhỏ để biểu thị cho sự tương quan này

Tính năng đa dạng

Ngoài tính năng syntax highlighting đã được hỗ trợ sẵn trong Vim, bạn có thể thêm các tính năng mới cho Vim thông qua các plugin của cộng đồng. Tôi thấy việc này khiến Vim không thua gì VSCode hay thậm chí là IDE khi bạn có thể kiếm được các plugin cung cấp những tính năng có trong IDE.

Dễ dàng vận chuyển

Khi bạn cài lại hệ điều hành hoặc mua máy mới thì việc cài đặt lại text editor như cũ sẽ khiến bạn mất kha khá thời gian. Nhưng với Vim, mọi cấu hình của bạn đều từ file .vimrc và bạn có thể đơn giản là copy file này qua máy mới để có Vim cũ của bạn.

Và còn xa hơn nữa

Tôi dường như cũng chỉ đang ở lưng chừng đâu đó trong việc khai phá hết tiềm năng của text editor này. Nhưng những gì tôi đã trải nghiệm thì không thể chối cãi. Quá trình học ngôn ngữ của Vim, tìm hiểu cách cài đặt các plugin đã khiến tôi bước ra khỏi cùng an toàn của mình và biết được thêm nhiều thứ mới như Unix và Bash, những thứ mà tôi không thể học được nếu cứ dính với những phần mềm phục vụ sẵn mọi thứ cho mình. Đúng là sẽ có khoảng thời gian khó khăn đấy. Nhưng cũng chính vì những lý do đó, tôi muốn thuyết phục bạn cho Vim một cơ hội để thay đổi trải nghiệm của bạn.

Kết

Còn nhiều thứ khác tôi không nhắc đến về những tính năng khác của Vim như Key Binding hay chia màn hình trong Vim chủ yếu là vì tôi vẫn chưa có ấn tượng nhất định với các tính năng này. Có thể tôi sẽ viết thêm về chúng nếu nhận định của tôi thay đổi. Nhưng quan trọng hơn, nếu bạn đã đọc đến đây và muốn bắt đầu học Vim thì trên Medium có một bài viết phù hợp dành cho bạn đấy.

Link: https://medium.com/actualize-network/how-to-learn-vim-a-four-week-plan-cd8b376a9b85

Nhận xét

Bài đăng phổ biến từ blog này

Phép phân tích ma trận A=LU

Độc lập tuyến tính và phụ thuộc tuyến tính

Thuật toán tính lũy thừa nhanh. Giải thích một cách đơn giản