Hoàn thành chế độ chèn với Ctrl-n
Tôi không biết nếu bạn có thể hoàn thành WORD ngoài việc viết chức năng của riêng bạn (như omnifunc). Tuy nhiên, nếu bạn không ngại mở rộng từ nào phù hợp với các ký tự của mình, bạn có thể thêm các ký tự đó vào 'iskeyword'
Ví dụ: 'iskeyword' của tôi mặc định là
iskeyword=@,48-57,_,192-255
Sau đó tôi đặt nó vào đó cộng với các ký tự bổ sung ở trên
:set iskeyword=@,48-57,_,192-255,{,},,,(,),^
Điều này thêm {
, }
, ,
, (
, )
, và ^
các nhân vật tạo nên một từ (ngoài những gì đã làm)
Sau đó, việc nhập {
Ctrl-nhoàn tất {0,1}^n
(trong một tệp chỉ chứa hai ví dụ bạn đã đưa ra)
Lưu ý: Sẽ tốt hơn nếu chỉ làm một :set iskeyword+=
công cụ bổ sung, như sau:
:set iskeyword+={,},,,(,),^
Bằng cách này, bạn để lại bất cứ thứ gì khác tạo nên một từ khóa bằng cách nối thêm các ký tự mới vào cài đặt hiện có.
Mở rộng với chữ viết tắt
Mặc dù không phải là một phần của câu hỏi ban đầu, một chức năng tương tự (ish) khác là sử dụng chức năng viết tắt của nvi hoặc Vim. Không giống như hoàn thành từ khóa, chữ viết tắt không phải trông giống như văn bản cuối cùng. Cũng không giống như hoàn thành từ khóa, chữ viết tắt mở rộng tự động, thay vì chỉ khi bạn yêu cầu chúng. Tùy thuộc vào mục tiêu và cách sử dụng của bạn, điều này có thể tiết kiệm rất nhiều cách gõ và cho phép bạn nhập nhiều văn bản mà không bị gián đoạn yêu cầu hoàn thành.
Chữ viết tắt phù hợp với một nhóm từ khóa nhỏ và khi bạn có thể xác định chúng trước thời hạn (chúng không được phát hiện từ văn bản của bạn giống như hoàn thành từ).
Ý tưởng cơ bản đằng sau các chữ viết tắt là bạn liên kết một WORD với một số văn bản khác và bất cứ khi nào trình soạn thảo phát hiện ra rằng bạn đã gõ WORD đó (nghĩa là văn bản bạn đã nhập được bao quanh bởi khoảng trắng, trong đó hành động hoàn thành sẽ thêm khoảng trắng sau từ khóa hoặc rời khỏi chế độ chèn), nó được thay thế bằng văn bản khác.
Giả sử tập tin của bạn chứa {0,1}^n
rất nhiều và không có các biến thể khác của nó. Gõ là hơi dài một ngón tay, vì vậy có thể bạn chỉ muốn gõ 01n
hoặc myvalue
mở rộng ra {0,1}^n
, nhưng chỉ khi 01n
hoặc myvalue
là một từ riêng (nghĩa là, nếu nó xuất hiện trong một từ khác, đừng thay đổi nó).
Trong nvi, bạn có thể làm :abbrev 01n {0,1}^n
. Bạn có thể làm tương tự trong Vim, nhưng tôi khuyên bạn nên sử dụng :iabbrev 01n {0,1}^n
để hạn chế mở rộng chỉ ở chế độ chèn.
Sau đó, nếu bạn có một số văn bản (nơi |
đại diện cho con trỏ)
We find that the value 01n|
Và sau đó bạn nhấn Eschoặc Spacehoặc Tabdi chuyển các con trỏ, văn bản sẽ được thay thế và bạn có (ví dụ để sử dụng khoảng trắng)
We find that the value {0,1}^n |
và bạn có thể tiếp tục gõ mà không bị gián đoạn.
Điều này thường được sử dụng để tự động sửa lỗi chính tả phổ biến (ví dụ: thay đổi 'teh' thành 'the') nhưng nó có thể hữu ích như nhau cho trường hợp sử dụng của bạn, một lần nữa giả sử rằng bạn không ngại thiết lập ánh xạ trước thời hạn.
:abbreviate
thay thế. Ví dụ, ban hành:ab 01n {0,1}^n
lệnh. Sau đó, mỗi khi bạn nhập01n
dưới dạng một từ độc lập trong chế độ Chèn, nó sẽ mở rộng thành{0,1}^n
.