Vim, hay còn gọi là Vi IMproved, là một trình soạn thảo văn bản mã nguồn mở, đa nền tảng được phát triển dựa trên trình soạn thảo Vi nguyên bản với hàng loạt tính năng hiện đại và tiên tiến. Với cơ chế thao tác theo chế độ (modal editing), Vim cho phép bạn di chuyển và chỉnh sửa văn bản một cách nhanh chóng và chính xác thông qua các lệnh mạnh mẽ. Đây là công cụ lý tưởng cho việc chỉnh sửa tập tin cấu hình, lập trình và quản lý các script trên hệ thống Linux, nhờ hỗ trợ hoàn tác đa cấp, làm nổi bật cú pháp, chỉnh sửa dòng lệnh và lựa chọn trực quan.
Bài viết này cung cấp hướng dẫn chi tiết cách sử dụng Vim trên Linux nhằm tạo, quản lý và chỉnh sửa tập tin trên máy trạm của bạn, giúp tăng năng suất và tối ưu quá trình làm việc cho các chuyên gia CNTT.
Yêu cầu
Trước khi bắt đầu, bạn cần phải:
- Có quyền truy cập vào một instance Linux.
Các chế độ và lệnh cơ bản trong Vim
Khám phá các chế độ có sẵn trong Vim và các chức năng cụ thể để sử dụng trình soạn thảo văn bản này một cách hiệu quả. Mỗi chế độ cho phép bạn thực hiện các tác vụ cụ thể như điều hướng, chỉnh sửa văn bản, lựa chọn và thực thi lệnh. Các chế độ có sẵn trong Vim bao gồm:
1. Chế độ Normal
Vim khởi đầu ở chế độ Normal, nơi bạn điều hướng, xóa, sao chép và thực thi các lệnh. Nhấn Esc
để quay lại chế độ Normal từ bất kỳ chế độ nào khác.
Các lệnh sau đây được sử dụng trong chế độ Normal:
-
h, j, k, l
: Di chuyển con trỏ sang trái, xuống, lên và phải.dd
: Xóa dòng hiện tại.yy
: Sao chép dòng hiện tại.p
: Dán dòng đã sao chép.u
: Hoàn tác thay đổi cuối cùng.Ctrl + r
: Làm lại thay đổi vừa hoàn tác.gg
: Nhảy về đầu tập tin.G
: Nhảy về cuối tập tin.
2. Insert Mode
Sử dụng chế độ Insert để nhập và chỉnh sửa nội dung tập tin trong Vim. Bạn có thể chuyển sang chế độ Insert từ chế độ Normal bằng một trong các lệnh sau:
-
i
: Chèn văn bản trước con trỏ.a
: Chèn văn bản sau con trỏ.o
: Tạo một dòng mới bên dưới con trỏ.O
: Tạo một dòng mới bên trên con trỏ.
3. Chế độ Visual
Sử dụng chế độ Visual để lựa chọn và thao tác với văn bản trong Vim. Kích hoạt chế độ này từ chế độ Normal bằng một trong các lệnh sau:
v
: Bắt đầu lựa chọn theo ký tự.V
: Bắt đầu lựa chọn theo dòng.Ctrl + v
: Bắt đầu lựa chọn theo khối.
Dưới đây là các lệnh có thể thực thi trong chế độ Visual:
-
h, j, k, l
hoặc các phím mũi tên (Trái, Phải, Lên, Xuống): Di chuyển con trỏ và điều chỉnh vùng lựa chọn.d
: Xóa văn bản được chọn.y
: Sao chép văn bản được chọn.x
: Cắt văn bản được chọn.p
: Dán văn bản vào vùng được chọn.>
: Thụt lề vùng chọn.<
: Bỏ thụt lề vùng chọn.
4. Chế độ Command-line
Sử dụng chế độ dòng lệnh cho các tác vụ quản trị như lưu, thoát và cấu hình Vim. Nhập dấu :
để vào chế độ dòng lệnh từ chế độ Normal.
Bạn có thể thực hiện các lệnh sau trong chế độ dòng lệnh:
-
w
: Lưu tập tin.q
: Thoát Vim.wq
: Lưu và thoát.q!
: Thoát mà không lưu.set number
: Hiển thị số dòng.set nonumber
: Ẩn số dòng./
: Tìm kiếm từ khóa trong tập tin. Ví dụ,/word
tìm kiếm từ “word” trong tập tin.
Tạo tập tin bằng vim
Bạn có thể tạo tập tin bằng cách sử dụng Vim và chỉ định tên tập tin khi mở trình soạn thảo. Làm theo các bước dưới đây để tạo tập tin bằng Vim:
- Tạo tập tin trong Vim sử dụng cú pháp lệnh sau:
$ vim FILENAME
- Ví dụ, chạy lệnh sau để tạo một tập tin mới có tên
vimExample
:$ vim vimExample
- Lệnh trên sẽ mở một trình soạn thảo văn bản trống, cho phép bạn nhập nội dung và lưu tập tin.
- Nhấn
Esc
để thoát chế độ Insert, sau đó nhập:wq
để lưu và đóng Vim.
Mở tập tin bằng Vim
Bạn có thể sử dụng Vim để mở và quản lý một hoặc nhiều tập tin một cách hiệu quả. Làm theo các bước dưới đây để mở tập tin bằng Vim và chuyển đổi giữa các tập tin mở:
- Mở một tập tin bằng cách chỉ định tên tập tin sau lệnh
vim
.
Ví dụ, chạy lệnh sau để mởexistingFile
:consoleCopy$ vim existingFile
- Lệnh trên mở tập tin
existingFile
, cho phép bạn chỉnh sửa và thay đổi nội dung của tập tin. - Nếu tập tin không tồn tại, Vim sẽ mở một bộ đệm trống, cho phép bạn tạo tập tin đó.
- Mở nhiều tập tin bằng cách chỉ định các tên tập tin. Ví dụ, chạy lệnh dưới đây để mở
file1
vàfile2
bằng Vim:$ vim file1 file2
- Lệnh trên mở
file1
vàfile2
ở các bộ đệm riêng biệt. - Chuyển đổi giữa các tập tin mở trong Vim sử dụng các lệnh sau:
:n
hoặc:next
: Di chuyển đến tập tin tiếp theo.:prev
hoặc:previous
: Quay trở về tập tin trước đó.
Chỉnh sửa tập tin bằng Vim
Vim cung cấp nhiều cách để chỉnh sửa văn bản, hoàn tác thay đổi và lưu tập tin. Bạn có thể thêm hoặc sửa đổi văn bản bằng cách sử dụng chế độ Insert, hoàn tác và làm lại các thay đổi, và lưu tập tin. Phần này giải thích cách chỉnh sửa tập tin bằng Vim.
Thêm văn bản vào tập tin
Để thêm văn bản vào tập tin, bạn cần chuyển sang chế độ Insert để bắt đầu nhập nội dung mới. Các bước thực hiện:
- Mở tập tin cần chỉnh sửa.
$ vim filename
- Nhấn
i
để vào chế độ Insert và bắt đầu nhập nội dung mới. - Nhấn
Esc
để quay trở lại chế độ Normal.
Hoàn tác và làm lại thay đổi
Phần này chỉ cho bạn cách nhanh chóng hoàn tác các thay đổi gần đây trong tập tin bằng Vim. Bạn có thể hoàn tác hoặc làm lại các chỉnh sửa để dễ dàng sửa lỗi và đảm bảo kết quả mong muốn:
- Trong chế độ Normal, nhấn
u
để hoàn tác thay đổi cuối cùng. - Nhấn
Ctrl + r
để làm lại thay đổi vừa được hoàn tác.
Lưu Tập Tin Bằng Vim
Phần này giải thích cách lưu các thay đổi, bao gồm cả việc xử lý tập tin yêu cầu quyền đặc quyền (elevated permissions):
- Trong chế độ dòng lệnh, nhập
:w
để lưu tập tin.:w
- Để lưu tập tin với quyền root, chạy lệnh sau:
:w !sudo tee %
- Lệnh trên sẽ lưu tập tin. Để thoát, nhấn
:q
trong chế độ Normal và nhấn Enter.
Tìm và thay thế văn bản bằng Vim
Vim cung cấp các phương thức hiệu quả để tìm kiếm và thay thế văn bản trong tập tin. Phần này giải thích cách nhanh chóng tìm kiếm các mẫu văn bản cụ thể và thay thế chúng khi cần.
Tìm văn bản
Trong phần này, bạn sẽ học cách tìm kiếm các mẫu văn bản cụ thể trong tập tin để nhanh chóng định vị thông tin cần thiết.
- Để tìm kiếm một mẫu văn bản cụ thể, nhập lệnh sau trong chế độ dòng lệnh, thay thế
pattern
bằng văn bản cần tìm::/pattern
- Để làm nổi bật tất cả các xuất hiện của một mẫu, nhập lệnh sau trong chế độ dòng lệnh:
:set hlsearch
- Để bỏ nổi bật, sử dụng lệnh sau trong chế độ dòng lệnh:
:nohlsearch
Thay thế văn bản
Phần này hướng dẫn bạn cách thay thế một văn bản cụ thể trong tập tin, giúp bạn thực hiện các sửa đổi cần thiết một cách hiệu quả.
- Để thay thế một văn bản bằng một văn bản khác, nhập lệnh sau trong chế độ dòng lệnh:
:%s/old/new/g
Trong đó, thay
old
bằng văn bản cần tìm vànew
bằng văn bản thay thế. Tham sốg
cho biết thay thế tất cả các xuất hiện trong tập tin. - Để thay thế văn bản chỉ trong một khoảng dòng cụ thể, chỉ định số dòng trước lệnh
s
::6,8s/old/new/g
Lệnh trên sẽ thay thế
old
bằngnew
từ dòng 6 đến dòng 8. - Để hiển thị số dòng, sử dụng lệnh:
:set number
- Để xác nhận trước khi thay thế từng xuất hiện, sử dụng tham số
c
::%s/old/new/gc
Lệnh trên sẽ nhắc bạn xác nhận cho mỗi thay thế (nhấn
y
để thay thế,a
để thay thế tất cả, hoặcn
để bỏ qua).
Cắt, sao chép và dán văn bản bằng Vim
Phần này giải thích cách cắt, sao chép và dán văn bản trong Vim một cách hiệu quả, giúp bạn thao tác với văn bản nhanh chóng và chính xác.
Cắt văn bản
Để cắt văn bản trong Vim, thực hiện các bước sau:
- Nhấn
v
để vào chế độ Visual. - Sử dụng các phím mũi tên (←, →, ↑, ↓) hoặc
h, j, k, l
để điều chỉnh vùng lựa chọn. Nhấnd
để cắt vùng văn bản được chọn. - Để cắt một dòng đơn, nhấn
dd
trong chế độ Normal. - Để cắt nhiều dòng, nhấn
d
theo sau bởi lệnh di chuyểnnj
(vớin
là số dòng cần cắt). Ví dụ,3j
sẽ cắt dòng hiện tại và 2 dòng tiếp theo.
Sao Chép (Yank) Văn Bản
Thực hiện các bước sau để sao chép văn bản trong Vim:
- Nhấn
v
để vào chế độ Visual. - Sử dụng các phím mũi tên hoặc
h, j, k, l
để điều chỉnh vùng lựa chọn. Nhấny
để sao chép vùng văn bản được chọn. - Để sao chép một dòng đơn, nhấn
yy
trong chế độ Normal. - Để sao chép nhiều dòng, nhấn
y
theo sau bởi lệnh di chuyểnnj
. Ví dụ,3j
sẽ sao chép dòng hiện tại và 2 dòng tiếp theo.
Dán văn bản
Để dán văn bản đã sao chép hoặc cắt:
- Nhấn
p
để dán văn bản sau con trỏ, hoặcP
để dán trước con trỏ. - Để dán văn bản nhiều lần, nhấn
N
(vớiN
là số lần dán mong muốn) theo sau làp
trong chế độ Normal.
Xóa các dòng trong Vim
Vim cung cấp nhiều cách để xóa dòng một cách hiệu quả. Theo mặc định, các dòng bị xóa sẽ được lưu vào một register, cho phép bạn dán lại sau này. Tuy nhiên, để xóa vĩnh viễn và không lưu lại, bạn hãy sử dụng register “black hole” (`”_”), giúp đảm bảo nội dung bị xóa không được lưu giữ.
Xóa một dòng
- Trong chế độ Normal, đặt con trỏ vào bất kỳ vị trí nào trên dòng và nhấn
dd
để xóa dòng đó. - Sử dụng register “black hole” để xóa dòng mà không lưu vào register:
"_dd
.
Xóa nhiều dòng
- Sử dụng
ndd
(thayn
bằng số dòng cần xóa) để xóa nhiều dòng từ vị trí con trỏ. Ví dụ,3dd
sẽ xóa dòng hiện tại và 2 dòng tiếp theo. - Để xóa nhiều dòng mà không lưu vào register, sử dụng:
"_ndd
Ví dụ:"_3dd
.
Xóa dòng tới cuối tập tin
- Sử dụng
dG
để xóa tất cả các dòng từ vị trí con trỏ đến cuối tập tin. - Để xóa mà không lưu vào register, sử dụng:
"_dG
Xóa dòng từ đầu tập tin
- Sử dụng
dgg
để xóa tất cả các dòng từ vị trí con trỏ đến đầu tập tin. - Để xóa mà không lưu vào register, sử dụng:
"_dgg
Tùy chỉnh Vim
Vim cho phép người dùng tùy chỉnh thông qua các cài đặt cấu hình, giúp thay đổi cách hoạt động và giao diện của nó. Sử dụng tập tin .vimrc
để định nghĩa các cài đặt, ánh xạ phím và plugin.
Chỉnh sửa tập tin .vimrc
Tập tin .vimrc
lưu trữ các cài đặt do người dùng định nghĩa cho Vim.
- Mở tập tin
.vimrc
.$ vim ~/.vimrc
- Thêm các cài đặt mong muốn để tùy chỉnh Vim. Ví dụ:
- Hiển thị số dòng:
set number
- Bật làm nổi bật cú pháp:
syntax on
- Hiển thị dấu ngoặc đơn, ngoặc vuông hoặc dấu {} tương ứng giúp dễ dàng điều hướng và gỡ lỗi:
set showmatch
- Làm nổi bật dòng con trỏ theo chiều ngang:
set cursorline
- Hiển thị số dòng:
Tùy chỉnh màu sắc và giao diện trong Vim
Vim hỗ trợ các chủ đề màu sắc để thay đổi giao diện, mang lại môi trường chỉnh sửa cá nhân và hấp dẫn hơn. Làm theo các bước dưới đây để thay đổi màu sắc thông qua các profile trong Vim:
- Kiểm tra chủ đề màu hiện tại trong chế độ dòng lệnh:
:colorscheme
Lệnh này hiển thị chủ đề màu hiện tại.
- Để xem danh sách các chủ đề màu có sẵn, nhập lệnh
:colorscheme
theo sau là một dấu cách, sau đó nhấnCtrl + D
để hiển thị danh sách các chủ đề, ví dụ:blue delek evening koehler murphy quiet shine torte zellner darkblue desert habamax lunaperche pablo retrobox slate wildcharmdefault elflord industry morning peachpuff ron sorbet zaibatsu
- Thay đổi chủ đề màu thành một profile, ví dụ như
habamax
::colorscheme habamax
- Lưu ý: Vim sẽ đặt lại chủ đề màu khi khởi động lại. Để giữ lại các thay đổi, hãy thêm cấu hình vào tập tin
.vimrc
:colorscheme habamax
Ánh xạ phím tùy chỉnh trong Vim
Làm theo các bước dưới đây để định nghĩa ánh xạ phím tùy chỉnh thông qua tập tin .vimrc
:
- Mở tập tin
.vimrc
.$ vim ~/.vimrc
- Ánh xạ
qq
để thoát khỏi chế độ Insert:inoremap qq <Esc>
Bây giờ, khi nhấn
qq
trong chế độ Insert, sẽ chuyển về chế độ Normal. - Ánh xạ
Ctrl + S
để lưu tập tin trong Vim:nnoremap <C-s> :w<CR> inoremap <C-s> <Esc>:w<CR>a
Nhấn tổ hợp phím
Ctrl + S
trong chế độ Normal hoặc Insert để lưu tập tin. - Ánh xạ phím
q
để đóng tập tin:nnoremap q :q<CR>
Nhấn
q
trong chế độ Normal để đóng tập tin đang hoạt động. - Ánh xạ
Ctrl + V
để chuyển đổi chế độ dán:nnoremap <C-v> "+p inoremap <C-v> <Esc>"+pi"
Nhấn
Ctrl + V
trong chế độ Normal hoặc Insert sẽ chuyển đổi chế độ dán, hữu ích khi dán mã từ clipboard hệ thống vào Vim.
Cài đặt và quản lý plugin trong Vim
Plugin mở rộng chức năng của trình soạn thảo Vim. Làm theo các bước dưới đây để sử dụng trình quản lý plugin vim-plug nhằm cài đặt và quản lý các plugin.
- Cài đặt phiên bản mới nhất của trình quản lý plugin vim-plug.
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- Mở tập tin
.vimrc
$ vim ~/.vimrc
- Thêm các dòng sau vào tập tin để định nghĩa các plugin:
call plug#begin('~/.vim/plugged') Plug 'vim-airline/vim-airline' " Status bar enhancement Plug 'tpope/vim-commentary' " Easy commenting call plug#end()
Lưu và đóng tập tin.Cấu hình trên sẽ cài đặt các plugin
vim-commentary
vàvim-airline
trong Vim. - Mở Vim và chạy lệnh sau trong chế độ dòng lệnh để cài đặt các plugin đã chỉ định:
:PlugInstall
Quản lý Plugin sử dụngvim-plug
- Vào chế độ Normal trong Vim.
- Cập nhật tất cả các plugin đã cài đặt:
:PlugUpdate
- Xóa tất cả các plugin không sử dụng:
:PlugClean
- Liệt kê tất cả các plugin đã cài đặt:
:PlugStatus
- Truy cập trang Vim Awesome để khám phá thêm các plugin khác có thể cài đặt trong Vim.
Thoát Vim
Có nhiều cách để thoát khỏi Vim, tùy thuộc vào việc bạn có muốn lưu các thay đổi hay không. Các bước dưới đây hướng dẫn cách thoát khỏi Vim:
- Nhập
:wq
trong chế độ dòng lệnh để lưu tập tin và thoát khỏi Vim.:wq
- Để thoát và bỏ qua mọi thay đổi trong tập tin, nhập:
:q!
- Để thoát khỏi Vim, nhập:
:q
- Để thoát tất cả các tập tin mở:
:qa
- Để thoát khỏi Vim mà không lưu bất kỳ thay đổi nào trên nhiều tập tin mở, nhập:
:qa!
Kết luận
Bạn đã thực hành sử dụng trình soạn thảo văn bản Vim trên hệ điều hành Linux để tạo mới, mở, quản lý và chỉnh sửa các tập tin một cách linh hoạt. Trong quá trình đó, bạn đã khám phá nhiều tính năng nổi bật như: tô sáng cú pháp để tăng khả năng đọc mã nguồn, tùy chỉnh giao diện với các chủ đề màu sắc, và thiết lập ánh xạ phím (key mappings) để nâng cao hiệu quả điều hướng và thao tác trong Vim.
Nếu bạn muốn đào sâu hơn về các tùy chọn cấu hình nâng cao trong Vim, hãy sử dụng lệnh man vim
ngay trong Terminal để truy cập vào tài liệu chính thức và hướng dẫn chi tiết từ cộng đồng phát triển Vim – một nguồn thông tin đáng tin cậy dành cho các lập trình viên và quản trị hệ thống.