如何解决Vim中`UltiSnips`插件的TAB键映射冲突

2024-04-15

我已将映射键设置如下:

" Easy indent for code blocks
  nmap <tab>      v>
  nmap <s-tab>    v<
  vmap <tab>      >gv
  vmap <s-tab>    <gv

效果很好。但是,当我安装时UltiSnips通过 vundle,Tab 键不能用作缩进操作,它会删除我选择的多行代码。我知道这是因为默认设置UltiSnips。我想保留选项卡映射UltiSnips触发其功能,如何解决使用TAB键缩进代码块的问题?谢谢!


通过查看 UltiSnips 文档:h UltiSnips-triggers说:

You can define the keys used to trigger UltiSnips actions by setting global
variables. Variables define the keys used to expand a snippet, jump forward
and jump backwards within a snippet, and list all available snippets in the
current expand context. The variables with their default values are: >
   g:UltiSnipsExpandTrigger               <tab>
   g:UltiSnipsListSnippets                <c-tab>
   g:UltiSnipsJumpForwardTrigger          <c-j>
   g:UltiSnipsJumpBackwardTrigger         <c-k>

因此,在 ~/.vimrc` 文件中设置类似的内容:

let g:UltiSnipsExpandTrigger = '<f5>'

但是,您可能需要重新考虑您的<tab>映射。我建议您删除它们并使用>> or <<在正常模式下和> or <在视觉模式下进行初始缩进/取消缩进,然后通过以下方式重复该操作.,重做命令。如果您缩进/取消缩进太远,那么只需通过以下方式撤消它u.

如需更多帮助,请参阅:

:h >>
:h .
:h u
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决Vim中`UltiSnips`插件的TAB键映射冲突 的相关文章

随机推荐