Bài viết này là một phần của loạt hướng dẫn sử dụng VIM:

  • Hướng dẫn cho người mới bắt đầu sử dụng Vim
  • Bàn phím tắt Vim Cheatsheet
  • 5 mẹo và thủ thuật Vim cho người dùng có kinh nghiệm
  • 3 Các mẹo và thủ thuật hữu ích của VIM Editor dành cho người dùng nâng cao
  • Làm thế nào để biến Vim thành một bộ xử lý văn bản

Tin hay không, tôi sử dụng Vim như bộ xử lý văn bản hàng ngày của tôi. Tôi thích cách bố trí đơn giản và thiết kế phương thức của nó, ưu tiên các lệnh bàn phím phía trên các lần nhấp chuột.

Mặc dù bạn có thể biết Vim là trình soạn thảo văn bản phù hợp hơn cho văn xuôi, với một vài chỉnh sửa, bạn cũng có thể viết các tài liệu như bạn đang ở trong Word hoặc LibreOffice trong khi vẫn ở trong giới hạn thoải mái của thiết bị đầu cuối.

Bắt đầu

Nếu bạn chưa tự làm quen với các khái niệm cơ bản của Vim, hãy xem bài viết này, đây là bài viết đầu tiên trong loạt bốn bài viết. Hãy chắc chắn rằng bạn tìm hiểu làm thế nào để mở một tập tin văn bản, nhập và thoát khỏi chương trình, và di chuyển xung quanh màn hình bằng bàn phím của bạn trước khi nhảy sâu hơn vào phần này.

Cài đặt

Bản phân phối Linux của bạn có thể đi kèm với Vim trong kho lưu trữ gói của nó, vì vậy bạn có thể dễ dàng cài đặt nó với Trình quản lý phần mềm hoặc trình quản lý gói của bạn. Khi bạn chỉnh sửa tập tin cấu hình của Vim sau này, bạn có thể làm điều đó như một người dùng bình thường.

Arch Linux:

 sudo pacman -S vim 

Fedora:

 sudo dnf install vim 

Ubuntu:

 sudo apt install vim 

Mọi người khác có thể lấy Vim từ kho lưu trữ Github của nó:

 git clone https://github.com/vim/vim.git cd ./vim/src/ làm cho sudo cài đặt 

Tệp cấu hình Vim

Cài đặt Vim có thể tạo tệp .vimrc trong thư mục chính của bạn. Nếu không, hãy tạo một:

 chạm ~ / .vimrc 

Bạn có thể mở nó bằng chính Vim:

 cd vim .vimrc 

Trình xử lý văn bản của chúng tôi

Bây giờ bạn có thể đang xem một tập tin trống. Hãy thay đổi điều đó.

Chúng tôi có thể tạo ra một chức năng gọi là "WordProcessor" mà bạn có thể gọi bất cứ lúc nào. Nó sẽ trông giống thế này:

 func! WordProcessor () "di chuyển thay đổi bản đồ j gj bản đồ k gk" định dạng văn bản setlocal formatoptions = 1 setlocal noexpandtab setlocal bọc setlocal linebreak "chính tả và từ điển setlocal spell spelllang = en_us đặt thesaurus + = / home / test / .vim / thesaurus / mthesaur.txt "complete + = s thực hiện tìm kiếm tự động hoàn thành bộ từ điển hoàn chỉnh + = s endfu com! WP gọi WordProcessor () 

Bây giờ bạn thấy toàn bộ hàm, chúng ta có thể phá vỡ các phần của nó. Theo dõi bằng cách xem các phần chức năng của chúng tôi đã nhận xét bằng một dấu ngoặc đơn, các dòng riêng lẻ có màu xám.

1. Thay đổi chuyển động với map j gjmap k gk

Những gì bạn thấy ở đây là một sự thay đổi trong cách di chuyển con trỏ hoạt động bên trong Vim. Nếu bạn đọc các bài viết Vim trước đây được đề cập ở đầu bài viết này, bạn sẽ biết rằng j di chuyển con trỏ của bạn xuống và k di chuyển con trỏ của bạn lên. Tương tự như vậy, gj và gk di chuyển bạn xuống và lên, nhưng chúng di chuyển con trỏ bằng dòng trên màn hình chứ không phải bằng dòng trong tệp.

Ánh xạ của chúng ta về j / k đến gj / gk cho con trỏ của bạn khả năng di chuyển lên và xuống qua các đường kẻ được bọc trên màn hình của bạn. Điều này giúp khi bạn gõ các đoạn văn dài và cần di chuyển con trỏ của bạn dễ dàng đến giữa các đoạn văn đó.

2. Định dạng văn bản bằng các lệnh “setlocal”

Đầu tiên, xem setlocal formatoptions=1 . “Formatoptions” cho phép bạn chọn từ một số chế độ định dạng văn bản. Trong trường hợp tùy chọn “1”, Vim sẽ không phá vỡ các dòng sau một từ một chữ cái. Nó sẽ cố gắng, khi có thể, để phá vỡ các dòng trước từ một chữ cái để thay thế.

Tiếp theo, setlocal noexpandtab cho phép bạn giữ Vim thay đổi các tab thành không gian. Ví dụ: cài đặt “expandtab” sẽ báo cho Vim thay đổi cách nhấn phím Tab của bạn thành một số không gian phù hợp với cùng độ dài. “Noexpandtab” làm ngược lại; nó duy trì báo chí Tab của bạn dưới dạng một ký tự đơn.

setlocal wrap yêu cầu Vim bọc văn bản của bạn khi nó đến cuối màn hình của bạn. Đây là hành vi bạn mong đợi từ một trình xử lý văn bản.

Cuối cùng, setlocal linebreak được Vim để phá vỡ các dòng của bạn ở những nơi hợp lý. Nó giữ cho dây chuyền của bạn không bị bao bọc bởi nhân vật cuối cùng vừa vặn trên màn hình. Đây là lý do tại sao, một phần, bạn sẽ thấy các dòng văn bản tiếp cận các điểm khác nhau trên màn hình trước khi chúng được kết nối đến đầu. Kiểm tra xem nó trông như thế nào với một bản sao chưa hoàn thành của bài viết này trong ảnh chụp màn hình bên dưới

3. Chính tả và ẩn từ điển

Vim đi kèm với khả năng kiểm tra chính tả tích hợp sẵn. Bạn có thể làm cho chức năng "WordProcessor" của bạn sử dụng khả năng đó bằng cách sử dụng câu lệnh setlocal spell spelllang=en_us . Bạn có thể xác định nhiều ngôn ngữ ở đây trong danh sách được phân cách bằng dấu phẩy.

Tìm thêm các tập tin ngôn ngữ tại trang web Vim FTP này. Đặt các tệp đã chọn của bạn (cả tệp .spl và .sug cho từng ngôn ngữ) trong “$ HOME / .vim / spell /.” Thay đổi dòng của hàm để set spelllang=en_us, nl, medical, ví dụ, để kiểm tra tiếng Anh, Tiếng Hà Lan, và các từ y tế.

Các từ sai chính tả sẽ hiển thị dưới dạng gạch dưới và in đậm trong văn bản của bạn.

Bạn có thể tìm kiếm các thay thế bằng cách nhập :z= ở chế độ Bình thường. (Sử dụng phím Escape để chuyển sang chế độ Normal). Lệnh này sẽ tạo ra một màn hình giống như hình dưới đây.

Bạn có thể sử dụng tính năng từ điển của Vim bằng cách cho nó biết thư mục từ điển đã chọn của bạn với set thesaurus+=/home//.vim/thesaurus/mthesaur.txt hoặc tương tự. Bạn có thể tìm thấy tệp “mthesaur.txt” tại Project Gutenberg. Đặt tệp văn bản đã tải xuống của bạn vào thư mục bạn xác định bằng lệnh đó.

Tìm kiếm các từ tương tự với từ được đánh dấu của bạn bằng cách nhập chế độ Chèn (nhấn i khi ở chế độ Bình thường), và gõ Ctrl + x và sau đó nhấn Ctrl + t. Nó sẽ hiển thị cho bạn một danh sách như hình ảnh sau đây mà bạn có thể cuộn qua để tìm một từ mới.

Đôi khi các đề xuất không phải là tốt nhất.

4. Tự động điền các từ với tùy chọn “hoàn tất”

Hãy xem set complete+=s để xem xét cuối cùng của chúng tôi. Tùy chọn này yêu cầu Vim tìm kiếm từ điển đồng nghĩa của bạn cho một từ bạn muốn tự động hoàn thành.

Thông thường, bạn có thể tự động hoàn thành các từ bằng cách sử dụng Vim để xem các từ trước đó bạn đã gõ, chẳng hạn như “missspelled” và “mistake” trong ảnh chụp màn hình sau đây. Bạn chỉ cần nhập chế độ Chèn và nhập Ctrl + n hoặc Ctrl + p để tìm kiếm một từ, ví dụ: các từ "sai" được đánh vần một nửa.

Xem cách hai lựa chọn đầu tiên không phải từ từ điển đồng nghĩa? Hai dòng đó là các tùy chọn duy nhất bạn thấy ở đây nếu hàm của chúng tôi không sử dụng “complete + = s.” Bạn có thể bỏ qua hoặc nhận xét dòng đó để tự động hoàn thành nhanh hơn.

Khởi động Bộ xử lý Word của bạn

Dòng cuối cùng của .vimrc của bạn làm cho chức năng của WordProcessor hoạt động là com! WP call WordProcessor() com! WP call WordProcessor() . Nó cho phép bạn gõ :WP ở chế độ Normal để thiết lập khả năng xử lý văn bản của Vim.

Bạn có thể chỉnh sửa “WP” trong dòng này để đọc bất cứ điều gì bạn thích - chỉ cần đảm bảo văn bản tiếp giáp. Bất kỳ văn bản nào bạn chọn sẽ thay đổi lệnh thành :

Phần kết luận

Các chức năng tôi đã thảo luận ở đây chỉ kéo dài cho một phiên Vim duy nhất. Do đó, khi bạn đóng và mở lại Vim, cài đặt mặc định sẽ giữ lại một lần nữa. Điều này sẽ xảy ra ngay cả khi bạn mở cùng một tệp lần thứ hai.

Bạn có thể thiết lập các tùy chọn này bên ngoài hàm để chúng hoạt động mọi lúc, nhưng chúng có thể không thực hiện công lý cho nhiều nhiệm vụ lập trình mà Vim đã được thực hiện để xử lý. Thật khó để gõ một vài ký tự. Chỉ cần tận hưởng các cài đặt mới của bạn và thực tế là bạn đã biến thiết bị đầu cuối của mình thành trình chỉnh sửa đoạn văn mạnh mẽ.