我想定义一个vi键绑定C-c,它将复制光标下的单词。目前的版本是:
nmap <C-c> <ESC>yaw<CR>
领先的ESC允许从插入或正常模式使用它,但是在使用后总是使编辑器在正常模式下着陆具有不良副作用。有没有办法对
的效果做些什么nmap <C-c> if(editor.mode == NORMAL) yaw<CR> else <C-o>yaw<CR>
这将使用户处于她开始的相同模式吗?
答案 0 :(得分:3)
<CR>
末尾的rhs
不是必需的vim支持不同模式的映射,您可以创建映射:
nnoremap <C-c> .... "only for normal mode
inoremap <C-c> .... "only for insert mode
Vim有你想要的选项,<expr>
映射。它通过评估您的表达式来获取rhs
个键。但它不能与您的nmap <expr> ...
一起使用因为,如果您处于insert
模式,由于nmap
,映射将不会应用。
我建议您阅读:h map-expr
和:map
,以了解:map
与模式之间的关系。