为什么 if 可以在 vim-snippets 和 ultisnips 中扩展而不是 ifee?

Why if can expand instead of ifee in vim-snippets and ultisnips?

我已经用插件管理器安装了 vim-snippetsultisnips--pathogen 这样。

cd ~/.vim/bundle
sudo git clone https://github.com/honza/vim-snippets.git
cd ~/.vim/bundle && git clone git://github.com/SirVer/ultisnips.git

.vimrc中设置配置。

execute pathogen#infect()
execute pathogen#helptags()
syntax on
filetype plugin indent on
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<tab>"
let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
let g:UltiSnipsSnippetDirectories=['/home/debian9/.vim/UltiSnips']

我在 python.snippets 中列出了 if ife ifee 结构。

cat .vim/bundle/vim-snippets/UltiSnips/python.snippets
snippet if "If" b
if ${1:condition}:
    ${2:${VISUAL:pass}}
endsnippet

snippet ife "If / Else" b
if ${1:condition}:
    ${2:${VISUAL:pass}}
else:
    ${3:pass}
endsnippet

snippet ifee "If / Elif / Else" b
if ${1:condition}:
    ${2:${VISUAL:pass}}
elif ${3:condition}:
    ${4:pass}
else:
    ${5:pass}
endsnippet

现在是时候用 vim 编辑 test.py 文件了。

输入#!tab可以展开成:

#!/usr/bin/env python3

输入iftab可以展开成:

if condition:

为什么在我的vim中输入ifee然后按tab会展开成什么都没有?

您显示的文件 .vim/bundle/vim-snippets/UltiSnips/python.snippets 不包含在您在 vimrc (/home/debian9/.vim/UltiSnips) 中配置的 ultisnips 目录中。

你可以试试:

  • 更改配置:

    let g:UltiSnipsSnippetDirectories=['/home/debian9/.vim/bundle/vim-snippets/UltiSnips']
    
  • 或者检查文件 /home/debian9/.vim/UltiSnips/python.snippets 以查看是否定义了正确的片段。