【问题标题】:How to solve the collision of TAB key mapping of `UltiSnips` plugin in the Vim如何解决 Vim 中 UltiSnips 插件的 TAB 键映射冲突
【发布时间】:2013-05-13 10:04:54
【问题描述】:

我已将映射键设置如下:

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

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

【问题讨论】:

    标签: vim ultisnips


    【解决方案1】:

    通过:h UltiSnips-triggers 查看 UltiSnips 文档是这样说的:

    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>'
    

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

    如需更多帮助,请参阅:

    :h >>
    :h .
    :h u
    

    【讨论】:

    • 在我的情况下,tab 与 supertab 插件发生冲突。请注意,如果您在 putty 上使用 vim,那么某些组合键可能无法开箱即用,例如 &lt;f5&gt;&lt;c-tab&gt; 在这种情况下,请尝试使用 let g:UltiSnipsExpandTrigger = '&lt;c-j&gt;' 之类的东西,这也比打字更舒适&lt;c-tab&gt;
    • @PeterRincker 当我使用任何功能键时,例如&lt;f5&gt;,它只是在插入模式下输入&lt;f5&gt;。但是,它在 gvim 中有效。但是我对 Putty 的问题仍然存在:/
    【解决方案2】:

    您可以将默认展开触发器更改为其他键,但我认为最好使用以下地图:

    nnoremap > v>
    nnoremap < v<
    vnoremap > >gv
    vnoremap < <gv
    

    它对我很有效。

    更重要的是,&lt;Tab&gt; 删除您选择的多行代码是UltiSnips 的一个功能。您可以使用UltiSnips sn-ps 中的选定文本。看看here

    【讨论】:

      猜你喜欢
      • 2013-08-23
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多