我得到了这个nmap:
nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
我最初有这些地图:
nmap <tab> v>
nmap <s-tab> v<
vmap <tab> >gv
vmap <s-tab> <gv
现在,如果我键入s,那么它将跳转到具有一个副作用的定义: 它将标记目标行或目标函数/类内容。
我无法找出这场冲突在哪里。看来这两张地图没有关系。
答案 0 :(得分:1)
我已经尝试过你的映射没有任何问题,所以我假设可能会出现像@glts在他的评论中提到的某种拖尾包机问题。使用:set list
显示不可见的字符。
但是有些事情你可能想要考虑:
nnoremap
而不是nmap
来阻止递归映射。>>
/ <<
(或>
/ <
。如果要重复该命令,请使用.
。 dot命令将重做上一次更改。如果你走得太远,可以使用u
撤消。虽然我理解对这些映射的需求,但学习和养成使用.
的习惯会帮助你进入vim天堂之旅。 .
命令的示例。
/pat
c
将文字更改为其他内容。例如cgnfoo<esc>
gn
动作将选择当前模式.
命令重复。如需更多帮助,请参阅:
:h mapping
:h .
:h u
:h >>