11 mẹo sử dụng Vim giúp bạn tiết kiệm nhiều giờ chỉnh sửa

Tác giả ChatGPT, T.Mười 07, 2024, 07:05:40 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Trở thành chuyên gia Vim. Đây là trình soạn thảo văn bản trong Linux, chứ không phải nước lau sàn nhà nhé các bạn.

Bạn muốn đưa trò chơi Vim của mình lên một tầm cao mới? Từ thời gian sử dụng Vim, tôi đã học được nhiều mẹo và thủ thuật hay giúp tôi tiết kiệm rất nhiều thời gian và công sức khi chỉnh sửa bằng Vim. Tôi chia sẻ một số mẹo hàng đầu của mình trong hướng dẫn này để bạn có thể kết hợp chúng vào quy trình làm việc của mình.


1. Di chuyển con trỏ nhanh chóng

Vim được thiết kế để điều hướng hiệu quả mà không cần dựa vào chuột hoặc phím mũi tên. Biết các lệnh di chuyển con trỏ của Vim có thể giúp bạn tiết kiệm rất nhiều thời gian và sự tỉnh táo khi xử lý các tệp lớn. Vim cung cấp một số cách để di chuyển con trỏ nhanh chóng từ di chuyển theo ký tự, từ và đoạn văn đến nhảy đến các vị trí cụ thể.

Bên cạnh các phím mũi tên, bạn có thể sử dụng H (trái), J (xuống), K (lên) và L (phải) để di chuyển theo ký tự. Bạn cũng có thể thêm một số trước ký tự để nhảy qua số ký tự đó. Vì vậy, nhấn 5j sẽ di chuyển con trỏ theo năm hàng. Để di chuyển khoảng cách lớn hơn, bạn có:

  • w: Nhảy đến đầu từ tiếp theo.
  • W: Nhảy đến đầu từ tiếp theo sau khoảng trắng
  • b: Nhảy đến đầu từ trước đó.
  • B: Nhảy đến đầu từ trước đó trước khoảng trắng.
  • e: Nhảy đến cuối từ hiện tại.
  • E: Nhảy đến cuối từ trước khoảng trắng.
  • 0: Nhảy đến đầu dòng
  • $: Nhảy đến cuối dòng

Hơn nữa, nếu bạn muốn nhảy đến một dòng cụ thể, hãy nhập số dòng đó rồi dùng G để đến dòng đó. Vì vậy, nếu bạn muốn đến dòng 500, hãy nhập 500G và nhấn để nhảy đến dòng đó.

2. Chuyển đổi Tab thành Khoảng trắng và Khoảng trắng thành Tab

Một vấn đề phổ biến mà các nhà phát triển và người sáng tạo nội dung gặp phải là sự không nhất quán trong thụt lề. Một số nhóm hoặc dự án có thể thích tab để thụt lề, trong khi những nhóm khác thích khoảng trắng. Trong Vim, bạn có thể chuyển đổi tab thành khoảng trắng và ngược lại, tùy thuộc vào yêu cầu cụ thể của dự án.

Nếu bạn muốn chuyển đổi tất cả các khoảng trắng trở lại thành tab trong một tệp hiện có, hãy chạy hai lệnh sau:

Mã nguồn [Chọn]
:set noexpandtab
:retab!

Lệnh đầu tiên đảm bảo rằng các tab sẽ được sử dụng thay vì khoảng trắng. Lệnh thứ hai thực thi việc chuyển đổi khoảng trắng trở lại thành ký tự tab dựa trên cài đặt tabstop.

Nếu bạn thích khoảng trắng và muốn chuyển đổi các tab trong tệp hiện có, hãy chạy:

Mã nguồn [Chọn]
:set expandtab
:set tabstop=4
:set shiftwidth=4
:retab

Các lệnh này cho Vim biết thông tin chi tiết về khối thụt lề khi chuyển đổi tab thành khoảng trắng.

3. Thụt lề nhiều dòng

Thụt lề là một cách thực hành tốt để giữ cho tệp của bạn sạch sẽ và có tổ chức. Nếu bạn đang làm việc với một ngôn ngữ như Python, thì việc thụt lề đúng trở nên quan trọng hơn. Chỉ với một lệnh, bạn có thể thụt lề tất cả các dòng trong một tệp. Đầu tiên, nhập gg để nhảy đến dòng đầu tiên của tệp (đó có thể chỉ là một mẹo hữu ích khác.) Sau đó nhập =G để thụt lề các dòng. Vì vậy, lệnh cuối cùng là:

Mã nguồn [Chọn]
gg=G

4. Đánh dấu lỗi chính tả

Tôi mắc rất nhiều lỗi đánh máy và lỗi khi gõ nhanh. Trong các trình xử lý văn bản hiện đại như Microsoft Word và Google Docs, bạn có trình kiểm tra chính tả gợi ý từ được viết đúng chính tả. Vim cũng có trình kiểm tra chính tả tích hợp. Nó sẽ làm nổi bật các từ mà nó cho là đã bị viết sai chính tả. Để bật trình kiểm tra chính tả, hãy sử dụng lệnh này:

Mã nguồn [Chọn]
:set spell

5. Thay đổi hướng chọn trực quan

Khi bạn làm việc ở Chế độ trực quan, bạn có thể chọn văn bản theo ký tự, dòng hoặc khối. Khi bạn bắt đầu chọn văn bản theo bất kỳ hướng nào, bạn có thể nhận ra rằng bạn cần mở rộng hoặc thay đổi lựa chọn theo hướng ngược lại. Thay vì thoát khỏi Chế độ trực quan và bắt đầu lựa chọn lại, bạn có thể thay đổi hướng lựa chọn bằng cách nhấn nút o.


6. Nhảy đến dấu ngoặc phù hợp

Khi làm việc trên một cơ sở mã lớn, bạn thường cần tìm phần cuối của một khối mã. Trừ khi mã được định dạng và thụt lề tốt, điều đó rất khó. Trong Vim, bạn có thể dễ dàng tìm phần đầu hoặc phần cuối của một khối mã bằng cách nhảy đến dấu ngoặc tương ứng. Nhấn dấu phần trăm (%) sẽ thực hiện chính xác như vậy. Nếu bạn đang ở dấu ngoặc mở và nhấn %, bạn sẽ nhảy đến dấu ngoặc kết thúc và ngược lại.


Cách này áp dụng cho dấu ngoặc đơn, dấu ngoặc nhọn và dấu ngoặc vuông.

7. Hiển thị số dòng

Cái này khá dễ. Theo mặc định, Vim không hiển thị số dòng, chỉ có dấu ngã. Bạn có thể bật số dòng trên Vim ở các chế độ khác nhau. Ở chế độ số dòng tuyệt đối, bạn sẽ thấy số dòng bắt đầu từ một đến dòng cuối cùng. Để thiết lập, hãy chạy lệnh này:

Mã nguồn [Chọn]
:set number

Ở chế độ số tương đối, dòng mà con trỏ của bạn đang ở là dòng thứ 0. Các dòng còn lại được đánh số tương đối với dòng mà con trỏ của bạn đang ở. Vì vậy, các dòng ở trên và dưới con trỏ của bạn bắt đầu từ một và tiếp tục. Để bật đánh số tương đối, hãy chạy:

Mã nguồn [Chọn]
:set relativenumber

Còn nếu bạn cần cả hai thì sao? Có một chế độ khác gọi là chế độ lai, nơi bạn có thể sử dụng cả hai. Bằng cách bật chế độ lai, dòng mà con trỏ của bạn đang ở sẽ hiển thị số dòng tuyệt đối của nó. Nhưng các dòng ở trên và dưới sẽ hiển thị số tương đối của chúng. Bật chế độ này bằng cách chạy:

Mã nguồn [Chọn]
:set number relativenumber

8. Chế độ bình thường

Lệnh :norm trong Vim cho phép bạn chạy các lệnh chế độ bình thường từ chế độ dòng lệnh. Điều này hữu ích cho các tác vụ lặp lại và chỉnh sửa hàng loạt. Khi bạn cần áp dụng cùng một lệnh chế độ bình thường cho nhiều dòng cùng lúc, bạn có thể thực hiện bằng cách viết một dòng duy nhất thay vì lặp lại cùng một nội dung cho mỗi dòng.

Ví dụ, tôi muốn thêm dấu chấm phẩy (;) vào cuối một vài dòng. Đầu tiên, tôi cần chọn tất cả các dòng. Sau đó chạy các lệnh sau:

Mã nguồn [Chọn]
:norm
A;

Khi tôi nhấn Enter, tất cả các dòng được chọn sẽ có dấu chấm phẩy ở cuối.


Tương tự như vậy, bạn có thể chèn văn bản, đổi chữ hoa/thường hoặc thụt lề nhiều dòng cùng một lúc.

9. Xóa văn bản trong chế độ chèn

Trong các trình soạn thảo văn bản truyền thống, có nhiều phím tắt để xóa ký tự và từ. Vim có bộ phím tắt riêng để xóa nhanh các đoạn văn bản. Bạn có thể xóa ký tự, từ và toàn bộ dòng. Bạn có thể xóa theo hướng ngược lại hoặc tiến lên của con trỏ. Sau đây là một số phím tắt hữu ích:

  • Ctrl+H: Xóa một ký tự về phía sau (tương tự như phím xóa lùi).
  • Ctrl+W: Xóa một từ phía sau.
  • Ctrl+U: Xóa mọi thứ từ con trỏ đến đầu dòng.
  • Ctrl+K: Xóa mọi thứ từ con trỏ đến cuối dòng.

10. Đoạn trích động

Snippets giống như các đoạn văn bản được xác định trước mà bạn có thể chèn nhanh để tăng tốc quy trình làm việc. Thay vì nhập đi nhập lại cùng một đoạn mã hoặc văn bản mẫu, bạn có thể sử dụng snippets để nhanh chóng mở rộng thành một khối văn bản dài hơn, tiết kiệm thời gian và giảm lỗi đánh máy. Các snippets động đưa điều này tiến xa hơn một bước bằng cách cho phép các snippets bao gồm nội dung động, chẳng hạn như thời gian hiện tại, ngày tháng hoặc thông tin biến khác.

Sử dụng các plugin như UltiSnips hoặc vim-snippets, bạn có thể định nghĩa các đoạn mã động điều chỉnh dựa trên ngữ cảnh hiện tại. Ví dụ, hãy tạo một đoạn mã để mở rộng 'jd' thành John Doe. Nếu bạn đang sử dụng UltiSnips, hãy thêm nội dung sau vào tệp UltiSnips của bạn (thường là ~/.vim/UltiSnips/snippet_file_name.snippets:)

Mã nguồn [Chọn]
snippet jd
John Doe
endsnippet

Đối với các đoạn mã động như thời gian và ngày tháng, bạn có thể định dạng như sau:

Mã nguồn [Chọn]
snippet time
`!v strftime("%H:%M:%S")`
endsnippet

Bây giờ, nếu bạn nhập 'thời gian' và nhấn nút Tab, thời gian hiện tại sẽ được tự động chèn vào.

11. Tự động hoàn thành từ


Vim có tính năng hoàn thành từ tích hợp sẵn. Tính năng này có thể hữu ích khi viết thứ gì đó mà một từ thường xuất hiện (chẳng hạn như biến trong chương trình). Để tự động hoàn thành một từ, hãy bắt đầu nhập từ đó và nhấn Ctrl+N. Bạn cũng có thể nhập Ctrl+P. Sự khác biệt là tính năng sau tìm kiếm danh sách từ dưới cùng (từ cuối cùng) trong khi tính năng trước tìm kiếm từ trên cùng.

Với những mẹo mới này, bạn sẽ có thể sử dụng Vim tự tin hơn. Chúng tôi cũng có các hướng dẫn khác chỉ cho bạn cách thoát khỏi Vim và xác định hồ sơ Vim.