Vim
мой любимый текстовый редактор, когда я программирую, и поэтому я всегда сталкиваюсь с особенно раздражающей проблемой.
Часто, когда мне нужно быстро сохранить буфер и перейти к другой задаче, я обычно выполняю
:w
Тем не менее, мне - как кажется, более 50% времени - всегда удается извлечь из этого выгоду :w
. Естественно, vim кричит на меня, потому что W
это неверная команда
E492: Not an editor command: W
Мой вопрос, как один двоеточие-команд псевдонима в Vim . В частности, вы могли бы служить примером , как псевдоним W
для w
.
Мне известен процесс сопоставления ключей с определенными командами . К сожалению, это не то, что я ищу.
:W
вы могли на карте ключ для выполнения сохранения. Если вы привыкли к какой-либо программе, которая сохраняет с помощью Ctrl-s, есть следующие сопоставления из $ VIM / mswin.vim:" Use CTRL-S for saving, also in Insert mode
noremap <C-S> :update<CR>
vnoremap <C-S> <C-C>:update<CR>
inoremap <C-S> <C-O>:update<CR>
Ответы:
Чтобы оставить завершение без изменений, попробуйте использовать
, он будет заменен
W
в командной строке наw
, но только если за ним не следует и не предшествует символ слова, поэтому:W<CR>
он будет заменен на:w<CR>
, но:Write
не будет. (Обратите внимание, что это влияет на любые совпадающие команды, в том числе те, которые вы не ожидаете, например, команда:saveas W Z
будет заменена:saveas w Z
, поэтому будьте осторожны с этим.)Обновить
Вот как бы я написал это сейчас :
Как функция:
Это проверяет, что тип команды
:
и командаW
, так что это безопаснее, чем простоcnoreabbrev W w
.источник
:%s/W/foo/g<CR>
:%s/w/foo/g<CR>
:cnoreabbrev <expr> W getcmdtype()==':'&&getcmdline()=~#'^W'?'w':'W'
При дополнительном поиске я обнаружил, что кто-то задал почти тот же вопрос, что и я.
сделает свое дело.
Помните, что, как указывает Ричо , команда пользователя должна начинаться с заглавной буквы.
источник
:command AliasName string of command to be aliased
command
аргументы, например-nargs
,-complete
и т. Д.:Q!
или:W!
?:command W w
в.vimrc
файл.Я считаю, что сопоставление
;
ключа:
было бы лучшим решением и сделало бы вас более продуктивным для ввода других команд.источник
t
илиf
, обычно можно использовать;
для перехода к следующему вхождению. Можно смело отобразить это другим способом, даже если вы поставили точку с запятой в двоеточие. Там не будет петли псевдонима.nnoremap : ;
Лучшее решение заключается в написании пользовательской функции для обработки сокращений, которые имеют место только в начале панели команд.
Для этого добавьте следующий файл vimrc или куда-либо еще.
Несколько полезных сокращений из исходного материала, где я нашел этот материал:
источник
string()
которая делает то же самое, что и вашаSingle_quote()
.Может быть, вы хотите отобразить одну из ваших функциональных клавиш (F1..F12) на: w? Затем поместите это в ваш .vimrc:
(Ctrl-O в режиме вставки временно переключается в нормальный режим).
источник
Предположим, вы хотите добавить псевдоним для команды tabnew в gvim. Вы можете просто ввести следующую команду в свой файл .vimrc (если не в домашней папке, чем создать)
источник
:saveas t example
к замене команды вроде:saveas tabnew example
Самым безопасным и простым является плагин, такой как cmdalias.vim или мои последние vim-псевдонимы, которые учитывают
:sil(ent)(!)
или:redi(r)
,'<,'>
для текущего визуального выбора,источник