每当我在插入模式下按 Enter 键时,什么也没有发生,这很烦人,您可能会想象到。
我已经用 :imap
检查了映射结果是 UltiSnips map <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。
最佳答案
那是因为 <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-[
表示 Esc
.所以你实际上是这样配置的 - let g:UltiSnipsExpandTrigger = '<C-m>'
.
关于Vim UltiSnips 插件在插入模式下重新映射 <CR>(回车键),即使我不在片段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48239301/