Как установить клавиатуру Vim, отображающуюся для запуска команды

Я часто пишу активный буфер Vim с :w, затем перезагрузите буфер с :e сбрасывать историю отмены/восстановления. Я делаю это так часто, я обновил мой .vimrc файл с командой, отображающейся для :we, сделать обоих за один шаг:

" Reset undo/redo buffer on reload
set undoreload=0

" Write and clear undo/redo buffer
cnoremap we w\|e

Однако это отображение все еще выполняется, если я вхожу we посреди командной строки; например, :s/answer/42/ расширен до :s/answ|er/42/. Действительно ли возможно отобразиться we только если это появляется в начале команды?

2
задан 20 December 2016 в 16:43

1 ответ

Вот хорошее место для использования сокращений. От :h abbreviations

2. Abbreviations            *abbreviations* *Abbreviations*

Abbreviations are used in Insert mode, Replace mode and Command-line mode.
If you enter a word that is an abbreviation, it is replaced with the word it
stands for.  This can be used to save typing for often used long words.  And
you can use it to automatically correct obvious spelling errors.
Examples:

    :iab ms Microsoft
    :iab tihs this

Удобная вещь о сокращениях вместо отображений состоит в том, что они будут только инициированы, если все слово будет Вашим сокращением.

Я рекомендовал бы работать:

:cnoreabbrev we w\|e

Я протестировал это, и я могу подтвердить что замена:

:s/answer/42

все еще typable, не будучи расширенным до :s/answ|er/42. Предупредите, хотя, этот подход не является совершенно надежным! Можно все еще иногда сталкиваться с проблемами. Например, ввод

:let foo = "we"

расширен до

:let foo = "w|e"
2
ответ дан 2 December 2019 в 03:43

Другие вопросы по тегам:

Похожие вопросы: