Sử dụng trình soạn thảo Vi.
- Trình soạn thảo vi được cài đặt gần như trên tất cả hệ điều hành Unix. Linux cũng thường cài đặt vi(vi improve)
- Vi là một trình soạn thảo không trực quan tuy nhiên nếu biết sử dụng thì nó sẽ là một công cụ soạn thảo mạnh mẽ.
1.Mở và thoát vi
- Để sử dụng vi trên một file sử dụng:
vi filename . Nếu file đã tồn tại thì trang đầu của file sẽ được hiển thị lên màn hình. Nếu không, vi sẽ tạo một file chống.
-
Trình soạn thảo vi mở trong chế độ command mode. Ở command mode, bạn có thể gõ các lệnh, một số lệnh đưa bạn đến insert mode. Ở insert mode, bạn có thể gõ văn bản. Dùng nút ESC để về command mode từ insert mode.
- Thường thì bản mới hai bản chỉnh sửa của một file sẽ được lưu khi thoát. Nhưng vẫn có thể thoát vi mà không lưu chỉnh sửa.
| Command |
Ý nghĩa |
| :x |
Thoát vi và lưu những chỉnh sửa vào file |
| :wq |
Thoát vi và lưu những chỉnh sửa vào file |
| :q |
Thoát vi |
| :q! |
Thoát vi mà không lưu những chỉnh sửa |
2.Di chuyển trong file.
| Câu lệnh |
Ý nghĩa |
| k hoặc mũi tên lên |
Di chuyển lên trên 1 dòng |
| j hoặc mũi tên xuống |
Di chuyển xuống dưới 1 dòng |
| h hoặc mũi tên sang trái |
Di chuyển sang trái 1 ký tự |
| l hoặc mũi tên sang phải |
Di chuyển sang phải 1 ký tự |
| e |
Di chuyển đến cuối từ |
| b |
Di chuyển đến đầu từ (lùi lại) |
| w |
Di chuyển đến đầu từ (tiến lên) |
| O |
Di chuyển đến đầu dòng |
| G |
Di chuyển đến cuối file |
| gg |
Di chuyển đến đầu file |
| L |
Di chuyển đến cuối screen |
| :59 hoặc 59G |
Di chuyển đến dòng 59 |
| 20 |
Di chuyển đến cột 20 |
| % |
Di chuyển đến các ngoặc trong dòng |
| [[ |
Nhảy đến nơi bắt đầu function |
| [{ |
Nhảy đến nơi bắt đầu block |
3.Cut, copy và paste
| Câu lệnh |
Ý nghĩa |
| y |
Copy phần text đã chọn vào clipboard |
| p |
Paste content |
| dd |
Cut dòng hiện tại |
| yw |
Copy word |
| yy |
Copy dòng hiện tại |
| y$ |
Copy đến cuối dòng |
| D |
Copy tới cuối file |
4.Tìm kiếm trong vi.
| Câu lệnh |
Ý nghĩa |
| /word |
Tìm kiếm “word” từ trên xuống dưới |
| ?word |
Tìm kiếm “word” từ dưới lên trên |
| * |
Tìm kiếm từ con trỏ |
| /\cstring |
Tìm “String” cả chữ hoa lẫn chữ thường |
| /jo[ha]n |
Tìm “john” và “joan” |
| /< the |
Tìm từ bắt đầu bằng the ví dụ: theatre or then |
| /the> |
Tìm từ kết thúc bằng the ví dụ: breathe |
5.Thay thế
| Câu lệnh |
Ý nghĩa |
| :%s/old/new/g |
Replace toàn bộ old thành new ở trong file |
| :%s/onward/forward/gi |
Replace toàn bộ onward thành forward ở trong file, case unsensitive |
| %s/old/new/gc |
Replace toàn bộ old thành new ở trong file kèm theo confirm |
| :2,35s/old/new/g |
Replace toàn bộ old thành new từ dòng 2 đến 35 |
| :5,$s/old/new/g |
Replace toàn bộ old thành new từ dòng 5 đến EOF |
| :%s/^/hello/g |
Thêm vào đầu của mỗi dòng bằng hello |
| :%s/$/Harry/g |
Thêm vào cuối của mỗi dòng bằng Harry |
| :g/string/d |
Xoá toàn bộ các dòng có chứa từ string |
| Ctrl+a |
+1 cho số tại nơi con trỏ đang chỉ |
| Ctrl+x |
-1 cho số tại nơi con trỏ đang chỉ |
6. Case.
| Câu lệnh |
Ý nghĩa |
| Vu |
Lowercase dòng hiện tại |
| VU |
Uppercase dòng hiện tại |
| g~~ |
Chuyền dòng hiện tại thành Uppercase và ngược lại |
| vEU |
Chuyển thành Uppercase |
| gggUG |
Biến tất cả chữ trong file thành uppercase |
| :set ignorecase |
Ignore case trong search |
| :set smartcase |
Ignore case trong search ngoại trừ trong search có chữ in hoa |
7. Đọc/ghi file.
| Câu lệnh |
Ý nghĩa |
| :1,10 w outfile |
Lưu dòng 1 đến dòng 10 trong outfile |
| :1,10 w » outfile |
Nối dòng 1 đến dòng 10 trong outfile |
| :r infile |
Insert content vào infile |
| :23r infile |
Insert content vào infile sau dòng 23 |
8.File explorer
| Câu lệnh |
Ý nghĩa |
| :e. |
Mở File explorer |
| :Sex |
Chia đôi màn hình mở File explorer |
| :Sex! |
Chia đôi màn hình theo chiều dọc và mở File Explorer |
| :ls |
List Buffer |
| :cd .. |
Đến thư mục cha |
| :args |
List files |
| :args *.php |
Mở file theo định dạng mong muốn |
| gf |
Mở File tại nơi con trỏ chỉ |
9.Alignment
| Câu lệnh |
Ý nghĩa |
| :%!fmt |
Align tất cả các dòng |
| !}fmt |
Allign tất cả các dòng tại vị trí hiện tại |
| 5!!fmt |
Allign 5 dòng tiếp theo |
10.Tab/Windows
| Câu lệnh |
Ý nghĩa |
| :tabnew |
Tạo tab mới |
| gt |
Chuyển sang tab tiếp theo |
| :tabfirst |
Chuyển tới Tab đầu tiên |
| :tablast |
Chuyển tới Tab cuối cùng |
| :tabm n(position) |
Chuyển vị trí tab |
11.Windows Spliting
| Câu lệnh |
Ý nghĩa |
| :e filename |
Sửa filenane tại thời màn hình hiện tại |
| :split filename |
Chia đôi màn hình và mở filename |
| :sp filename |
Chia đôi màn hình theo chiều ngang |
| :vs filename |
Chia đôi màn hình theo chiều dọc |
| Ctrl + w + hướng |
Điều hướng giữa các màn hình đã chia |
| Ctrl + w_ |
Max chiều dọc cho màn hình hiện tại |
| Ctrl +w |
Max chiều ngang cho màn hình hiện tại |
| Ctrl-w= |
Điều chỉnh kích thước bằng nhau cho tất cả các màn hình |
| 10 ctrl-w+ |
Thêm 10 dòng cho màn hình hiện tại |
| :hide |
Đóng màn hình hiện tại |
| :nly |
Đóng tất cả màn hình trừ màn hình hiện tại |
12.Auto-completion
| Câu lệnh |
Ý nghĩa |
| Ctrl+n Ctrl+p (in insert mode) |
Complete word |
| Ctrl+x Ctrl+l |
Complete line |
| :set dictionary=dict |
Define dict as a dictionnary |
| Ctrl+x Ctrl+k |
Complete with dictionnary |
13.Marks
| Câu lệnh |
Ý nghĩa |
| m {a-z} |
Marks vị trí hiện tại với chữ cái đc set {a -z} |
| ‘{a-z} |
Move đến vị trí |
| ” |
Move đến vị trí trước đó |
14.Text Indent
| Câu lệnh |
Ý nghĩa |
| :set autoindent |
Turn on auto-indent |
| :set smartindent |
Turn on intelligent auto-indent |
| :set shiftwidth=4 |
Định nghĩa indent bằng 4 space |
| ctrl-t, ctrl-d |
Indent/un-indent trong insert mode |
| » |
Indent |
| « |
Un-Indent |
| =% |
Indent code trong dấu ngoặc |
| 1GVG= |
Indent toàn bộ file |
15.Syntax highlighting
| Câu lệnh |
Ý nghĩa |
| :syntax on |
Turn on syntax highlighting |
| :syntax off |
Turn off syntax highlighting |
| :set syntax=perl |
Force syntax highlighting |
nguồn: https://viblo.asia/p/cac-cau-lenh-vim-ma-cac-developer-nen-biet-ByEZkLyglQ0