3

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

我检查了映射,:imap结果是 UltiSnips 映射<CR>

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

如果 i iunmap <CR>,我的 enter 键再次开始工作,但 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 对我无法使用。

4

1 回答 1

3

那是因为与(Enter)<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。所以你实际上已经以这种方式配置它 - .Ctrl-[Esclet g:UltiSnipsExpandTrigger = '<C-m>'

于 2018-01-16T17:19:11.103 回答