1

我在 linux 系统上设置了 YCM,并通过 gui-terminal 调用了 vim 虽然 YCM 在 vi​​m 插入模式下工作正常,并且它打开了全能菜单,但是只要我按下或 vim 进入粘贴模式,它就不会触发 YCM。

.vimrc 中的以下设置都不适合我。

let g:ycm_key_invoke_completion = '<C-x><C-o>'
let g:ycm_key_invoke_completion = '<C-Space>'
let g:ycm_key_invoke_completion = '<Nul>'

以下诊断命令返回

:verbose imap <Nul>
i  <Nul>       * <C-X><C-O><C-P>
        Last set from ~/.vim/bundle/YouCompleteMe/autoload/youcompleteme.vim

:verbose imap <C-Space>
No mapping found

:verbose imap <C-x><C-o>
i  <C-X>       * <C-R>=<SNR>20_ManualCompletionEnter()<CR>
        Last set from ~/.vim/bundle/supertab/plugin/supertab.vim

我不知道问题是来自 SuperTab 还是其他原因,我真的希望弹出 Omnimenu。谢谢

4

1 回答 1

1

:h paste

When the 'paste' option is switched on (also when it was already on):
        - mapping in Insert mode and Command-line mode is disabled
        - abbreviations are disabled
        - 'textwidth' is set to 0
        - 'wrapmargin' is set to 0
        - 'autoindent' is reset
        - 'smartindent' is reset
        - 'softtabstop' is set to 0
        - 'revins' is reset
        - 'ruler' is reset
        - 'showmatch' is reset
        - 'formatoptions' is used like it is empty

所以我不确定为什么你会期望映射工作。如果要正常编辑文件,只需禁用粘贴模式即可。

于 2015-03-30T14:23:49.563 回答