繁体   English   中英

Vim正常模式CTRL-A的同义词?

[英]Synonym for Vim's normal mode CTRL-A?

我发现在Vim正常模式下<Ca>不仅应该增加数字而且应该切换布尔值。 如果你认为truefalse是整数模2,这是有道理的。

所以,我下载了一个优秀的脚本来做毛茸茸的工作并为<Ca>写了一个新的定义:

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

但实际上, nnoremap并不能检查内部函数。 如果我的光标不在单词truefalse上,我会得到递归行为。

在这一点上,我发誓,为什么Bram没有从Emacs中选择一个好主意,一切都应该是功能和键绑定可以自由选择。 然后我就可以检查<Ca>的函数并在该函数中调用它。 但不,我找不到这样的功能, execute "normal foo"短语似乎是Vim成语。

关于如何使<Ca>工作的任何建议

  • 当光标位于单词truefalse时,切换布尔值
  • 否则回归内置的<Ca>行为

帮助赞赏!

更改

execute "normal \<C-a>"
至:

<C-v><C-a>

你可以通过跑步来获得^ A.

  <CV> <CA> 
在正常模式下

“!” 在正常结束时说“使用默认映射”

来自:help :normal

:norm[al][!] {commands}     
...
If the [!] is given, mappings will not be used.
....

您也可以直接定义命令

nnoremap <C-a> :call NewCA()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM