Синоним CTRL-A в нормальном режиме Vim?

Я пришел к мысли, что в Vim ' В нормальном режиме следует не только увеличивать числа, но и переключать логические значения. Это имеет смысл, если вы считаете истинным и ложным целыми числами по модулю 2.

Итак, я загрузил отличный сценарий для выполнения сложной работы и написал новое определение для :

fun! NewCA()
    let cw = tolower(expand(""))
    if cw == "true" || cw == "false"
        ToggleWord
    else
        " run the built-in 
        execute "normal \"
    endif
endfun
command! NewCA :call NewCA()
nnoremap  :NewCA

Но, как оказалось, nnoremap не доходит до проверки внутренних функций. Я получаю рекурсивное поведение , если мой курсор находится не на словах true или false .

В этом пункте я много клянусь, почему Брэм не выбрал отличную идею из Emacs, что все должно быть функциями и свободно настраиваемыми привязками клавиш. Тогда я мог просто проверить функцию для и вызвать ее в этой функции. Но нет, я могу Я не нашел такую ​​функцию, и фразы execute "normal foo" кажутся идиомой Vim.

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

  • Переключение логических значений, когда курсор находится над словом true или false
  • Возврат к встроенному поведению в противном случае

Помощь приветствуется!

5
задан unperson325680 29 January 2011 в 14:18
поделиться