【问题标题】:Vim UltiSnips plugin remaps <CR> (Enter key) in insert mode even when I'm not in a snippet即使我不在片段中,Vim UltiSnips 插件也会在插入模式下重新映射 <CR>(Enter 键)
【发布时间】:2018-01-17 01:19:11
【问题描述】:

每当我在插入模式下按 Enter 键时,什么都没有发生,这很烦人,你可以想象。

我检查了:imap 的映射,结果发现UltiSnips 映射&lt;CR&gt;

i  <CR>        * <C-R>=UltiSnips#ExpandSnippetOrJump()<CR>

如果我iunmap &lt;CR&gt;,我的回车键再次开始工作,但 UltiSnips 停止工作(我猜这是有道理的)。

我没有使用任何预制的 sn-ps,我只有一个 tex.sn-ps 文件在工作。我尝试从文件中删除所有内容以检查我的 sn-p 定义是否有问题。

所有文件类型都会发生此行为。

这是我的 UltiSnips 配置:

let g:UltiSnipsSnippetsDir         = '~/.vim/ultisnips'
let g:UltiSnipsSnippetDirectories  = [$HOME.'/.vim/ultisnips']

let g:UltiSnipsExpandTrigger       = '<C-m>'
let g:UltiSnipsJumpForwardTrigger  = '<C-m>'
let g:UltiSnipsJumpBackwardTrigger = '<C-n>'

let g:UltiSnipsEditSplit           = "vertical"

为什么 UltiSnips 为它的功能映射 &lt;CR&gt;

感谢您对此提供的任何帮助,因为这使 UltiSnips 对我无法使用。

【问题讨论】:

    标签: vim ultisnips


    【解决方案1】:

    那是因为&lt;CTRL-M&gt;&lt;CR&gt; 相同(回车),见:help keycodes

    notation    meaning         equivalent  decimal value(s)    ~
    -----------------------------------------------------------------------
    ...
    <Tab>       tab             CTRL-I      9   *tab* *Tab*
                                                *linefeed*
    ...
    <CR>        carriage return CTRL-M      13  *carriage-return*
    <Return>    same as <CR>                    *<Return>*
    <Enter>     same as <CR>                    *<Enter>*
    <Esc>       escape          CTRL-[      27  *escape* *<Esc>*
    ...
    

    类似地,例如CTRL-I 表示tabCtrl-[ 表示Esc。所以你实际上是这样配置的 - let g:UltiSnipsExpandTrigger = '&lt;C-m&gt;'

    【讨论】:

    • 非常感谢,我想我不会抓住这个!让 UltiSnips 再次对我有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    相关资源
    最近更新 更多