Sunday, January 19, 2025

Mẹo sử dụng trình soản thảo vi trong linux

-

Hầu hết các chức năng của GNU/Linux đều thực hiện được trên Terminal, các bản phân phối Linux bao gồm Terminal cho phép người dùng tương tác với shell từ máy tính. Sell như là biên dịch command-line cho phép người dùng thực thi câu lệnh. Bash (Boure Again Shell) là shell mặc định phổ thông trên các bản phân phối Linux và là shell mặc định trên macOS, để bắt đầu bạn hãy setup profile cho vi nhé.

echo '''set number
set relativenumber
set shiftwidth=2
set nofixeol
set nocompatible

" Màu chữ cho các thành phần cú pháp Python
highlight pythonStatement guifg=#ff0000
highlight pythonComment guifg=#808080
highlight pythonString guifg=#008000
highlight pythonNumber guifg=#0000ff

" Màu chữ cho các từ khóa Python
highlight pythonKeyword guifg=#0000ff
highlight pythonConditional guifg=#0000ff
highlight pythonRepeat guifg=#0000ff
highlight pythonOperator guifg=#0000ff
highlight pythonException guifg=#0000ff
highlight pythonDecorator guifg=#0000ff

" Màu chữ cho các lớp và hàm Python
highlight pythonClass guifg=#800080
highlight pythonFunction guifg=#800080

" Màu nền cho các thành phần cú pháp Python
highlight pythonStatement guibg=NONE
highlight pythonComment guibg=NONE
highlight pythonString guibg=NONE
highlight pythonNumber guibg=NONE

" Màu nền cho các từ khóa Python
highlight pythonKeyword guibg=NONE
highlight pythonConditional guibg=NONE
highlight pythonRepeat guibg=NONE
highlight pythonOperator guibg=NONE
highlight pythonException guibg=NONE
highlight pythonDecorator guibg=NONE

" Màu nền cho các lớp và hàm Python
highlight pythonClass guibg=NONE
highlight pythonFunction guibg=NONE

" Tô màu syntax cho các ngôn ngữ khác
" Ví dụ: HTML, CSS, JavaScript

" Tô màu syntax cho HTML
au BufRead,BufNewFile *.html set filetype=html
au FileType html syntax enable
au FileType html syntax on
highlight htmlTag guifg=#800000
highlight htmlTagName guifg=#800000
highlight htmlSpecialTagName guifg=#800000
highlight htmlArg guifg=#008080
highlight htmlString guifg=#008000
highlight htmlAttribute guifg=#ff00ff
highlight htmlValue guifg=#0000ff
highlight htmlComment guifg=#808080
highlight htmlTitle guifg=#800000

" Tô màu syntax cho CSS
au BufRead,BufNewFile *.css set filetype=css
au FileType css syntax enable
au FileType css syntax on
highlight cssSelector guifg=#800000
highlight cssProperty guifg=#0000ff
highlight cssValue guifg=#008000
highlight cssComment guifg=#808080

" Tô màu syntax cho JavaScript
au BufRead,BufNewFile *.js set filetype=javascript
au FileType javascript syntax enable
au FileType javascript syntax on
highlight javaScriptFunction guifg=#800080
highlight javaScriptNumber guifg=#0000ff
highlight javaScriptString guifg=#008000
highlight javaScriptComment guifg=#808080

" Tô màu syntax cho Shell Script (Bash)
au BufRead,BufNewFile *.sh set filetype=sh
au FileType sh syntax enable
au FileType sh syntax on
highlight shFunction guifg=#800080
highlight shVariable guifg=#0000ff
highlight shString guifg=#008000
highlight shComment guifg=#808080''' > ~/.vimrc

1. Sử dụng trình soạn thảo vi.

– Cách comment nhanh, bấm Ctrl + v để chuyển mode VISUAL BLOCK.

Dùng mũi tên lên xuống để chọn các dòng cần comment.

Bấm Shift + i để vào mode INSERT.

Bấm phím #.

Bấm ESC ta có kết quả như dưới

Cách bỏ comment nhanh, bấm Ctrl + v để chuyển mode VISUAL BLOCK.

Dùng mũi tên lên xuống để chọn các dòng cần bỏ comment và và bấm chữ x để bỏ comment.

Và dưới đây là kết quả.

– Hiển thị số dòng bên lề trái.

– Di chuyển nhanh con trỏ.

Hãy vào mode relativenumber bằng cách gõ “:set relativenumber“.

Ví dụ bạn muốn đến cuối dòng “4 sudo useradd -m hacluster”. Để ý “sudo useradd -m hacluster” đang ở dòng số 4, bạn hãy cộng thêm 1 là 5, hãy gõ “5 buông ra và phím $”

Ví dụ bạn muốn đến cuối dòng “7 apt upgrade -y”. Để ý “apt upgrade -y” đang ở dòng số 7, bạn hãy gõ “7 buông ra và phím k”.

Ví dụ bạn muốn đến cuối dòng “6 172.16.1.22 node02.srv.world”’ >> /etc/hosts”. Để ý “ 172.16.1.22 node02.srv.world”’ >> /etc/hosts” đang ở dòng số 6, bạn hãy gõ “6 buông ra và phím j”.

– Tìm kiếm trong vi.

Ví dụ tìm kiếm từ khoá “10.0.0” trong file, bạn hãy gõ “/10.0.0” hoặc “?10.0.0” và bấm Enter.

Bạn có thể sử dụng phím “n” để con trỏ chuột di chuyển đến từ khoá tìm khớp tiếp theo.

– Tìm và thay thế ký tự trong vi.

Ví dụ bạn cần thay thế văn bản có nội dung 10.0.0 thành 10.10.10, từ màn hình Terminal bạn hãy gõ “:%s/10.0.0/10.10.10/g” và bấm Enter.

Toàn bộ ký tự có trong văn bản khớp sẽ bị thay thế như dưới.

Nếu bạn chỉ muốn thay thế ở dòng mà con trỏ đang đứng, bạn hãy bỏ % trước chữ “s”. Ví dụ “:s/10.10.10/20.20.20/g”. Kết quả cho thấy, văn bản chỉ được thay thế tại nơi con trỏ đang đứng.

Nếu bạn muốn giới hạn phạm vi tìm kiếm, hãy nhập vào “:3,9s/10.10.10/30.30.30/g” với 3 là dòng bắt đầu và 9 là dòng kết thúc. Ở ví dụ của mình dòng số 10 khớp với giá trị tìm kiếm là 10.10.10 nhưng không được thay thế vì nó nằm ở ngoài phạm vi tìm kiếm và thay thế.

– Sử dụng relativenumber kết hợp với VISUAL BLOCK.

Khi trình soạn thảo vi của bạn đang ở mode relativenumber, bạn hãy bấm Ctrl + v để vào tiếp mode VISUAL BLOCK.

Con trỏ của mình đang đứng ở dòng số 8, giờ mình muốn comment từ dòng số 8 đến dòng số 8 tiếp theo, bạn hãy bấm số 8 và bấm chữ j hoặc mũi tên xuống, nó sẽ chọn cho bạn vùng từ số 8 tại con trỏ đang đứng đến số 8 tiếp theo ở dưới.

Tới đây thì đơn giản rồi, bạn chỉ cần bấm phím Shift + i để vào mode Insert.

Vào được mode insert, bạn hãy gõ dấu # như hình dưới.

Giờ bạn hãy bấm phím ESC để thoát mode insert, bạn sẽ có kết quả như dưới.

– Sử dụng VISUAL LINE trong vi.

Để chọn nhanh 1 dòng văn bản, từ vị trí con trỏ bạn hãy bấm phím Shift + v.

Sau đó bạn có di chuyển nút lên xuống để dánh dấu khối văn bản, khi chọn được khối văn bản thì bạn có thể tuỳ ý xử lý nó, ví dụ bấm phím Back hoặc delete để xoá văn bản.

Một số phím tắt trong vi.

h: sang trái
j: xuống
k: lên
l: sang phải

w: di chuyến 1 từ hướng sang phải, lúc này con trỏ phải đứng ở chữ cái đầu tiên.
b: di chuyến 1 từ hướng sang trái, lúc này con trỏ phải đứng ở chữ cái đầu tiên.
dw: xóa 1 từ (con trỏ phải đứng ở chữ cái đầu tiên của từ cần xóa)
d2w: xóa 2 từ (con trỏ phải đứng ở chữ cái đầu tiên của từ cần xóa)
d4w: xóa 4 từ (con trỏ phải đứng ở chữ cái đầu tiên của từ cần xóa)
$: xóa từ vị trí con trỏ đang đứng đến cuối dòng, giống ctlr + c.

#Undo và Redo.
U -> Undo.
Ctrl+ R -> Redo.

#Xoá dòng.
dd -> Xoá dòng tại con trỏ đang đứng, các dòng phía dưới sẽ dồn lên.
dk -> Xoá dòng tại con trỏ đang đứng, các dòng phía trên sẽ dồn xuống.
2dk -> xóa 2 dòng hướng lên trên, muốn xóa nhiều dòng bạn thêm số bất kỳ vào.
2dd -> xóa 2 dòng hướng xuống dướ, muốn xóa nhiều dòng bạn thêm số bất kỳ vào.
dG -> Xoá toàn bộ văn bản tính từ dòng con trỏ đang đứng đến hết văn bản.

#Xoá văn bản.
Chữ C viết hoa: Cả đoạn văn bản từ con trỏ hiện tại đến điểm cuối dòng sẽ bị xoá.
Chữ d0 viết hoa: Cả đoạn văn bản từ con trỏ hiện tại đến điểm đầu dòng sẽ bị xoá.

#Di chuyển vị trí con trỏ.
Gõ 2 chữ gg hoặc 2 dấu [[ hoặc gõ :0 -> Di chuyển con trỏ tới dòng kí tự đầu tiên dòng trên cùng
Chữ G viết hoa hoặc dấu ]] hoặc gõ :$ -> Di chuyển con trỏ tới kí tự đầu tiên dòng cuối cùng

Shift + ] -> di chuyển xuống 1 khối văn bản được phân cách bởi khoảng trắng.
Shift + [ -> di chuyển lên 1 khối văn bản được phân cách bởi khoảng trắng.

Dấu $ -> Di chuyển đến ký tự cuối cùng của dòng con trỏ đang đứng.
Số 0 -> Di chuyển đến ký tự đầu tiên của dòng con trỏ đang đứng.

Chữ H viết hoa -> di con trỏ lên trên cùng của màn hình hiện tại.
Chữ L viết hoa -> di con trỏ lên dưới cùng của màn hình hiện tại.
Chữ M viết hoa -> di chuyển con trỏ về vị trí chính giữa văn bản.

#Chèn văn bản.
Chữ o viết thường -> để chèn một dòng mới phía dưới dòng hiện tại và di chuyển con trỏ vào dòng mới đó.
Chữ O viết hoa -> để chèn một dòng mới phía trên dòng hiện tại và di chuyển con trỏ vào dòng mới đó

Chữ A viết hoa -> chuyển qua mode insert và di chuyển con trỏ về cuối dòng.
Chữ I viết hoa -> chuyển qua mode insert và di chuyển con trỏ về đầu dòng.

Chữ S viết hoa -> xoá dòng hiện tại và chuyển qua mode insert.
Chữ D viết hoa -> xoá dòng hiện tại tính từ vị trí con trỏ đến hết dòng và chuyển qua mode insert.

#Copy và dán.
yy -> copy 1 dòng tại vị trí con trỏ.
y1 copy 2 dòng, giá trị được tính từ 0, copy 3 dòng là y2, 4 dòng là y3.
p: dán kết quả copy tại vị trí con trỏ, vị trí con trỏ sẽ bị xê dịch khi dán văn bản.
P: dán kết quả copy tại vị trí con trỏ nhưng vẫn giữ nguyên vị trí con trỏ

#Thay thế.
Shift + r -> Thay thế văn bản tại vị trí con trỏ.

#Nối dòng.
Shift + j -> Nối các dòng lại với nhau, phân biệt bằng 1 khoảng trắng.

#Chuyển chữ hoa thành thường và ngược lại.
Shift + ~ -> Chuyển chữ hoa thành thường và ngược lại.

#Lưu và thoát file.
zz -> thoát và lưu file.
:w newfile.txt -> lưu file đang làm việc sang một file mới, giống save as trong MSWord.

# Di chuyển khối văn bản sang trái.
Shift + dấu '>' -> di chuyển sang phải.
Shift + dấu '<' -> di chuyển sang trái.

#Khối văn bản.
Phím v + phím (mũi tên lên hoặc xuống để chọn khối văn bản).

#Cuộn màn hình.
Ctrl + f cuộn xuống 1 màn hình.
Ctrl + b cuộn lên một màn hình.

#Chia màn hình
:vsplit -> Chia theo chiều dọc.
:split ->  Chia theo chiều ngang.

:! -> đây là cú pháp của nó, VI hỗ trợ bạn dùng lệnh Linux ngay trong trình soạn thảo mà không cần phải thoát rất tiện lợi.

Cách để dời nhanh một khối hay một đoạn văn bản.

Để dời một đoạn văn bản trong vi lên hoặc xuống một vị trí khác, bạn có thể sử dụng các lệnh sau:

  • Dời đoạn văn bản lên:
    • Di chuyển con trỏ đến đầu đoạn văn bản mà bạn muốn dời.
    • Nhập lệnh dd để xóa đoạn văn bản.
    • Di chuyển con trỏ đến vị trí mới mà bạn muốn đoạn văn bản được dời đến.
    • Nhập lệnh P để dán đoạn văn bản đã xóa vào vị trí mới trước con trỏ.
  • Dời đoạn văn bản xuống:
    • Di chuyển con trỏ đến đầu đoạn văn bản mà bạn muốn dời.
    • Nhập lệnh dd để xóa đoạn văn bản.
    • Di chuyển con trỏ đến vị trí mới mà bạn muốn đoạn văn bản được dời đến.
    • Nhập lệnh p để dán đoạn văn bản đã xóa vào vị trí mới sau con trỏ.

Lưu ý rằng lệnh dd được sử dụng để xóa đoạn văn bản và lệnh P hoặc p được sử dụng để dán đoạn văn bản đã xóa. Việc dùng lệnh này sẽ thực hiện việc dời đoạn văn bản trong bộ nhớ đệm của vi, và bạn cần lưu file để áp dụng thay đổi vào tệp tin.

Gửi nội dung từ trình soạn thảo văn bản của Visual Code đến terminal.

Vào Settings… -> Keyboard Shortcuts [3K 36S].

Tìm workbench.action.terminal.runSelectedText và cài đặt phím tắt bạn mong muốn đây.

Hoặc bạn có thể truyền nội dung sau vào file keybindings.json.

{
  "key": "ctrl+shift+t",
  "command": "workbench.action.terminal.runSelectedText",
  "when": "editorTextFocus && !editorReadonly"
}

Kết quả.

Bằng cách sử dụng các phương pháp trên, bạn có thể dễ dàng gửi nội dung từ tệp đang chỉnh sửa vào terminal trong VS Code mà không cần phải sao chép và dán thủ công. Điều này giúp tăng hiệu quả làm việc và tiết kiệm thời gian khi bạn cần thực thi các đoạn mã thường xuyên.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories