Hướng dẫn cài đặt và sử dụng NeoVim cơ bản

Hướng dẫn cài đặt và sử dụng NeoVim cơ bản

Ly Nhan

3 years 5 min read

Ở bài trước mình đã nói về quá trình mình chuyển từ Visual Studio Code sang NeoVim và những lợi ích của NeoVim.Hôm nay mình sẽ hướng dẫn các bạn cài đặt và sử dụng NeoVim.

Trước khi biến hình NeoVim thành 1 IDEs xịn xò thì các bạn phải biết sử dụng NeoVim như là 1 text editor trước, việc này là bắt buộc, bản thân mình đã từng bỏ NeoVim 1 lần chỉ vì muốn sử dụng NeoVim như là IDEs mà không nắm được những khái niệm và cú pháp cơ bản của NeoVim.

Cài đặt

Cài đặt trên MacOS thông qua brew: (nếu chưa có brew thì cài đặt ở https://brew.sh) brew install neovim

  • brew: brew install neovim

  • ubuntu: apt-get install neovim

Hoặc các bạn có thể sử dụng Vim thay NVim để luyện tập trong cũng được vì Vim được cài đặt sẵn trên các HĐH nhân Unix/Linux, cú pháp của Vim và NVim là như nhau.

NVim sinh ra là để refactor code cũ của Vim, đảm bảo tính chỉnh sửa, cải thiện, phát triển tính năng, có thể tích hợp nhiều extensions..... (https://github.com/neovim/neovim/wiki/Introduction)

Mở 1 file bằng NeoVim

Command Line để mở NeoVim là nvim , Vim là vi . Khi 1 file được mở lên bằng NeoVim thì mọi thao tác trên file đó đều có thể sử dụng bằng bàn phím.

// mở file bằng Vim
vi ./test.js 
vi doc.html
vi text.txt
// mở file bằng NeoVim 
nvim ./test.js 
nvim doc.html
nvim text.txt

NeoVim modes

NVim (NeoVim) xây dựng theo hướng keyboard driven, không chỉ edit text, mà bạn còn có thể di chuyển trên file, select 1 đoạn text, copy/paste, xoá, chèn text...

Vì có nhiều hành động trên file như vậy nên trên 1 file sẽ có nhiều mode, mỗi mode sẽ có 1 tập hợp các sự kiện phím khác nhau.

Normal mode

Mode này chủ yếu cho phép bạn di chuyển qua lại lên xuống trong file, chỉnh sửa text đơn giản như thay thế kí tự, chuyển đoạn text từ viết hoa sang viết thường, xoá 1 kí tự bất kì, yank/copy ...

Normal mode là tiền đề cho những mode khác, giống như trên editor thông thường, muốn chèn code ở 1 đoạn nào đó thì trước tiên bạn phải di chuyển đến vị trí chèn sau đó bắt đầu gõ. Trong NVim kịch bản sẽ là:

Step 1: chuyển sang Normal mode di chuyển đến vị trí bạn muốn chèn code. Step 2 : chuyển từ Normal mode sang Insert mode để bắt đầu chèn code.

Khi ở bất kì chế độ nào, nhấn phím ESC để vào Normal mode

Insert mode

Khi ở Insert mode, bạn có thể chèn text. Yup, chỉ vậy thôi, ngoài ra 1 số tính năng được kích hoạt ở chế độ insert như là AutoComplete, Suggestion...

Có nhiều cách để bạn vào chế độ Insert mode tuỳ mục đích của bạn, khi đang ở Normal mode bằng cách nhấn phím :

  • i : chèn text ngay tại vị trí con chuột

  • Shift + i : chèn text ở đầu câu

  • a : chèn text ngay trước vị trí con trỏ

  • Shift + a : chèn text ở cuối câu

  • o : chèn text trên 1 dòng mới phía dưới vị trí hiện tại của con trỏ chuột

  • Shift + o : chèn text trên 1 dòng mới phía trên vị trí hiện tại của con trỏ chuột ..........

Visual mode

Mode này cho phép bạn chọn và highlight đoạn text của mình, một khi text được highlight, mọi sự kiện sau đó hầu như chỉ ăn theo đoạn text bạn vừa highlight.

Nhấn phím v để vào Visual mode. Shift + v để visual dòng text tại vị trí con chuột. Khi ở chế độ Visual mode bạn có thể kết hợp với các phím di chuyển khác để để thay đổi khoảng highlight.

Command-line mode

Khi ở chế độ Cmd-line, bạn có thể tìm kiếm đoạn text, file, hay thực thi Cmd-line của Unix/Linux. ( key : hoặc :! để sử dụng Cmd-line của Unix )

Tìm kiếm trong file( key / )

Ngoài ra còn 2 mode nữa là Select và Ex-mode nữa nhưng mình ít xài, nên mình sẽ để link ở đây cho các bạn tìm hiểu thêm

Let's Crack Neovim

Nếu bạn nắm được những nguyên lý cơ bản của NVim thì việc làm chủ được NVim sẽ rất dễ. NVim xây dựng theo hướng keyboard driven, nên sẽ có công thức để tổ hợp các phím thành 1 chức năng cụ thể, hay những chức năng của con chuột.

Giả sử mình có 1 tập hợp các hành động sau:

  • Các action (Verb) trong Vim : i (insert), d (delete), c (change), u (undo), y/p (copy/paste), g (go)...

  • Di chuyển trong NVim : j=⬇ (đi xuống ), k=⬆( đi lên ), h = ⬅( di chuyển qua trái), l = ➡ ( di chuyển qua phải)

  • Các danh từ (Noun) : w (word), e (end), b (back), p (paragraph) ....

Mình sẽ kết hợp các phím đó với nhau như sau :

  • w, b, e : di chuyển qua lại giữa các từ ...

  • dw/cw (delete word/change word): xoá/thay thế 1 từ từ vị trí con trỏ đến hết từ bao gồm dấu cách

  • de/ce (delete end/change end): xoá/thay thế từ vị trí con trỏ đến cuối từ, không có dấu cách

  • diw/ciw (delete in word/ change in word) : xoá/thay thế toàn bộ từ phía dưới con trỏ

  • 2j | 2k | 2h | 2l : di chuyển ( xuống | lên | phải trái ) 2 dòng/ kí tự

  • 3w | 3b : di chuyển từ vị trí con trỏ ( đi lên 3 từ | đi ngược lại 3 từ )

  • gg | g | 12G : di chuyển đến dòng ( đầu tiên của file | dòng cuối cùng của file | 12 của file)

c: kết quả cuối cùng sẽ ở chế độ insert d: kết quả cuối cùng sẽ ở chế độ normal => c = d + i

Hầu như mọi chức năng của NVim thông qua tổ hợp các phím này, việc tổ hợp các phím rất dễ hình dung. Giả sử trong quá trình dev bạn muốn xoá 1 từ dịch ra tiếng anh delete word => dw.

// xoá đoạn text trong dấu ""
let text="xoá đoạn text ở đây "

Thay đổi đoạn text trong " dịch ra => change in " => ci"

Note : như mình đã nói change thì kết quả sẽ ở chế độ insert, nếu muốn xoá đoạn text ở nhưng vẫn ở chế độ normal thì bạn dùng di"

Luyện tập với Vimtutor

Mình khuyên các bạn nên bắt đầu với Vimtutor, nơi tổng hợp những hướng dẫn cơ bản + các use case của từng phím.

Bắt đầu Vimtutor trên terminal của MacOS/Linux, bật terminal lên và gõ: vimtutor

Có 1 điều khá thú vị là khi bạn mở vimtutor lên, bạn sẽ không xài được chuột ở trong termial của vimtutor, việc này càng khiến bạn phải kiên trì và quyết tâm cao khi học NVim.

Kết bài

Đơn giản phải không nào, bạn bắt buộc phải xài NVim như là 1 text editor trước khi biến nó thành 1 IDEs, cho đến bây giờ mình chưa nghĩ ra 1 lối tắt nào cả. Có thể nó hơi chán khi bạn phải ngồi làm theo tutorial gõ gõ các kiểu, nhưng càng về sau sẽ càng thú vị.

Mình nghĩ là trong 1 tuần thôi thì bạn có thể làm chủ được rồi, sau đó mình sẽ tiếp tục hướng dẫn các bạn configs + cài đặt plugins trên NVim. Đăng kí vào Codefun và theo dõi mình nha.

Nếu bạn cần bất kì sự trợ giúp nào, hãy để lại bình luận nhé, mình sẽ giải đáp sớm nhất có thể.

High level experience in web design and development knowledge, producing quality work.

© Nextlint_2023 All Rights Reserved

Privacy Policy Terms of Use