即使我不在片段中,Vim UltiSnips插件也会在插入模式下重新映射<cr>(输入键)

时间:2018-01-13 11:11:22

标签: vim ultisnips

每当我在插入模式下按Enter键时,都没有任何反应,这可能是您想象的非常烦人。

我已使用:imap检查了地图,结果显示了UltiSnips地图<CR>

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

如果我iunmap <CR>,我的回车键会再次开始工作,但是UltiSnips会停止工作(我猜这是有意义的。)

我没有使用任何预制片段,而且我有一个tex.snippets文件正常工作。我已经尝试删除文件中的所有内容,以检查我的代码段定义是否有问题。

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

这是我的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将<CR>映射为其功能?

感谢任何帮助,因为这使得UltiSnips无法使用。

1 个答案:

答案 0 :(得分:0)

这是因为<CTRL-M><CR>(回车)相同,请参阅: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表示tab的{​​{1}}表示Ctrl-[。所以你实际上是这样配置的 - Esc