Как сделать прописной первую букву слова в Vim?

долгое время я знал, что могу использовать ~ в Vim для переключения случая символа. Но есть ли способ отобразить ключ, чтобы капитализировать Слово и вернуться к предыдущей позиции?

например:

I like to drink Coca co[l]

Если мой курсор находится на "l", и я понимаю, что мне нужно сделать" c " капитализировать, в настоящее время мне нужно сделать:

<C-c> b ~ ll i

есть ли способ отобразить одну клавишу, чтобы сделать первую букву слова под курсором заглавной и держать курсор в исходном положении?

4 ответов


:nmap <whatever> m`b~``

лично я предпочитаю именно такие вещи не сделать макрос для. Нет необходимости заполнять ваш .vimrc с десятками таких одноразовых решений, потому что решение течет так естественно из "toolbox" стандартных команд Vim, что вы можете просто связать его вместе, как вторая природа.

я печатаю длинное слово:

the gallicizatio|

(the | положение курсора). Внезапно я понимаю, что забыл заглавную букву G из "Gallicization". Так, БАМ! Я ударил ESC (который отображается на клавишу caps lock На моей клавиатуре, поэтому требуется только щелчок мизинца), а затем b~A, и я продолжаю печатать, как будто ничего не произошло. Что странствующий g было написано с заглавной буквы за то время, пока пользователь Emacs начнет двигать правую руку к клавишам со стрелками, и я уже перешел к остальной части предложения.

в отличие от макроса, который я не использовал некоторое время, это, вероятно, потратьте больше времени, чтобы вспомнить, какие ключи я назначил этому макросу. Лучшее решение-очень хорошо изучить важные "основные" команды, которые можно комбинировать на лету по простым правилам с миллионами возможных эффектов.


вы также можете использовать макрос

q<register> <C-c> b ~ ll i q

и затем сделать @<register> каждый раз, когда вам нужно использовать его.


Я часто делаю это и использую командную строку EX, чтобы пройти через несколько записей, которые соответствуют условию. В этом случае я использую backreference, который выглядит следующим образом:

:%s/\(\w\)\(\w*\)/\U\L/g

и бум, проблема решена во всех словах, которые находятся в определенном контексте.

EDIT: посмотрите здесь тоже, просто понял, что была эта ссылка, которая имеет аналогичные ответы:

заглавная первая буква каждого слова в выделении с помощью ВИМ