0

从 cscope 我得到了这个 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,那么它将跳转到具有一个副作用的定义:它将制表目标行或目标函数/类内容。

我找不到这个冲突在哪里。看来这两张图没有关系。

4

1 回答 1

1

我已经尝试过您的映射,没有任何问题,所以我认为可能存在某种尾随章程问题,例如他的评论中建议的@glts。用于:set list显示不可见的字符。

但是,您可能需要考虑以下几点:

  • 除非您要映射到插件或非常特殊的需要,否则您几乎应该总是使用nnoremapovernmap来防止递归映射。
  • vim 缩进/取消缩进的方法是使用>>/ <<(或>/<在可视模式下)。如果要重复该命令,请使用.. dot 命令将重做最后一次更改。u如果您走得太远,您可以使用撤消。尽管我理解对此类映射的需求,但学习并养成使用习惯.将帮助您进入 vim 必杀技。
  • .通过展示快速和肮脏的替换 来很好地使用该命令的示例。
    • 在您的文件中搜索常见模式/pat
    • 通过 将文本更改为其他内容c。例如cgnfoo<esc>
    • 运动将gn选择当前模式
    • .用命令重复。

如需更多帮助,请参阅:

:h mapping
:h .
:h u
:h >>
于 2013-09-26T16:35:24.063 回答