Вставка режиму завершення за допомогою Ctrl-n
Я не знаю, чи можна було б виконати слово WORD за межами написання власної функції (наприклад, omnifunc). Однак якщо ви не заперечуєте над тим, щоб розширити слово, яке відповідає вашим персонажам, ви можете додати цих символів до "iskeyword"
Наприклад, моє значення "iskeyword" за замовчуванням
iskeyword=@,48-57,_,192-255
Потім я встановив це плюс додаткові символи вище
:set iskeyword=@,48-57,_,192-255,{,},,,(,),^
Це додає {
, }
, ,
, (
, )
, і ^
до персонажів , які складають слово (на додаток до того , що вже зробив)
Після цього введення {
Ctrl-nзавершується в {0,1}^n
(у файлі, що містить лише ті два приклади, які ви подали)
Примітка. Було б краще робити :set iskeyword+=
лише додаткові речі, як описано нижче:
:set iskeyword+={,},,,(,),^
Таким чином, ви залишаєте будь-яке інше, що складається з ключового слова, додавши нові символи до існуючих налаштувань.
Розширення за допомогою скорочень
Хоча це не є частиною оригінального питання, інший аналогічний (ish) функціонал полягає у використанні функції nvi або абревіатури Vim. На відміну від заповнення ключових слів, абревіатури не повинні виглядати як кінцевий текст. Також, на відміну від заповнення ключових слів, абревіатури розширюються автоматично, а не лише тоді, коли ви їх вимагаєте. Залежно від вашої мети та використання, це може заощадити багато набору тексту, а також дозволяє вводити багато тексту без перерви просити завершити.
Скорочення корисні для невеликого набору ключових слів, і коли ви можете їх визначити достроково (вони не виявляються з тексту, як це слово).
Основна ідея абревіатур полягає в тому, що ви пов'язуєте WORD з деяким іншим текстом, і будь-який час редактор виявить, що ви ввели це слово (тобто текст, який ви ввели, оточений пробілом, де завершення додає пробіл після ключове слово або залишаючи режим вставки), він замінюється тим іншим текстом.
Скажімо, ваш файл містить {0,1}^n
багато, а інших його варіантів немає. Typing , що це трохи пальця розтягнути, так що, може бути , ви просто хочете ввести 01n
або myvalue
і він розширюватися {0,1}^n
, але тільки тоді , коли 01n
або myvalue
це слово саме по собі (тобто, якщо це станеться , з'явиться в іншому слові, чи не зміни це).
У nvi можна зробити :abbrev 01n {0,1}^n
. Ви можете зробити те ж саме у Vim, але я рекомендую використовувати :iabbrev 01n {0,1}^n
обмеження розширення лише на режим вставки.
Потім, якщо у вас є текст (де |
представлений курсор)
We find that the value 01n|
А потім ви натискаєте Escабо Spaceабо Tabіншим чином переміщуєте курсори, текст замінюється, і у вас є (приклад використання місця)
We find that the value {0,1}^n |
і ви можете продовжувати вводити текст без перерви.
Зазвичай використовується для автоматичного виправлення загальних помилок (наприклад, зміни "teh" на "the"), але це може бути однаково корисно для вашого випадку використання, знову ж таки припускаючи, що ви не проти налаштувати відображення достроково.
:abbreviate
замість цього. Наприклад, видайте:ab 01n {0,1}^n
команду. Потім, кожного разу, коли ви вводите01n
самостійне слово в режимі "Вставка", воно розширюватиметься до{0,1}^n
.