Vim là gì? Hướng dẫn dùng trình soạn thảo Vim trên Linux cho newbie

Vim là gì? Hướng dẫn dùng trình soạn thảo Vim trên Linux cho newbie

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:

  1. Mở tập tin cần chỉnh sửa.
    $ vim filename
  2. Nhấn i để vào chế độ Insert và bắt đầu nhập nội dung mới.
  3. 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:

  1. Trong chế độ Normal, nhấn u để hoàn tác thay đổi cuối cùng.
  2. 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):

  1. Trong chế độ dòng lệnh, nhập :w để lưu tập tin.
    :w
  2. Để lưu tập tin với quyền root, chạy lệnh sau:
    :w !sudo tee %
  3. 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ằng new 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ặc n để 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:

  1. Nhấn v để vào chế độ Visual.
  2. 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ấn d để cắt vùng văn bản được chọn.
  3. Để cắt một dòng đơn, nhấn dd trong chế độ Normal.
  4. Để cắt nhiều dòng, nhấn d theo sau bởi lệnh di chuyển nj (với n 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:

  1. Nhấn v để vào chế độ Visual.
  2. 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ấn y để sao chép vùng văn bản được chọn.
  3. Để sao chép một dòng đơn, nhấn yy trong chế độ Normal.
  4. Để sao chép nhiều dòng, nhấn y theo sau bởi lệnh di chuyển nj. 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:

  1. Nhấn p để dán văn bản sau con trỏ, hoặc P để dán trước con trỏ.
  2. Để dán văn bản nhiều lần, nhấn N (với N 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

  1. 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 đó.
  2. 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

  1. Sử dụng ndd (thay n 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.
  2. Để 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

  1. Sử dụng dG để xóa tất cả các dòng từ vị trí con trỏ đến cuối tập tin.
  2. Để xóa mà không lưu vào register, sử dụng:"_dG

Xóa dòng từ đầu tập tin

  1. Sử dụng dgg để xóa tất cả các dòng từ vị trí con trỏ đến đầu tập tin.
  2. Để 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.

  1. Mở tập tin .vimrc.
    $ vim ~/.vimrc
  2. 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

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:

  1. 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.

  2. Để 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ấn Ctrl + 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
  3. Thay đổi chủ đề màu thành một profile, ví dụ như habamax:
    :colorscheme habamax
  4. 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:

  1. Mở tập tin .vimrc.
    $ vim ~/.vimrc
  2. Á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.

  3. Á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.

  4. Á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.

  5. Á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.

  1. 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
  2. Mở tập tin .vimrc
    $ vim ~/.vimrc
  3. 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.

  4. 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

  1. Vào chế độ Normal trong Vim.
  2. Cập nhật tất cả các plugin đã cài đặt:
    :PlugUpdate
  3. Xóa tất cả các plugin không sử dụng:
    :PlugClean
  4. Liệt kê tất cả các plugin đã cài đặt:
    :PlugStatus
  5. 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:

  1. Nhập :wq trong chế độ dòng lệnh để lưu tập tin và thoát khỏi Vim.
    :wq
  2. Để thoát và bỏ qua mọi thay đổi trong tập tin, nhập:
    :q!
  3. Để thoát khỏi Vim, nhập:
    :q
  4. Để thoát tất cả các tập tin mở:
    :qa
  5. Để 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.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *