我正在运行 Vim 8.0.124,并且我已经安装了vim-snipmate插件以在我的 Python 和 Django 开发中使用。我按照说明创建了一个包含以下内容的 .vimrc 文件:
# ~/.vimrc
set nocompatible " Required by Vundle
filetype off " Required by Vundle
" Begin Vundle settings ==========================================================
"
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'MarcWeber/vim-addon-mw-utils'
Plugin 'tomtom/tlib_vim'
Plugin 'garbas/vim-snipmate'
# Optional
Plugin 'SirVer/ultisnips'
Plugin 'honza/vim-snippets'
call vundle#end()
filetype plugin indent on
"
" End Vundle settings ==========================================================
" SnipMate
autocmd FileType python set ft=python.django
autocmd FileType html set ft=htmldjango.html
" UltiSnips
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
let g:UltiSnipsEditSplit="vertical"
安装 vim-snipmate 包括创建这四个文件:
~/.vim/bundle/vim-snippets/snippets/django.snippets
~/.vim/bundle/vim-snippets/snippets/htmldjango.snippets
~/.vim/bundle/vim-snippets/UltiSnips/django.snippets
~/.vim/bundle/vim-snippets/UltiSnips/htmldjango.snippets
我有两个问题。首先,为什么 UltiSnip Django 片段不起作用?片段/django.snippets 中的片段有效,但 UltiSnips django.snippets 文件中的片段不起作用。如果我打开一个文件 test.py 并键入“fdate”,其中 fdate 应该扩展为 Django DateField,什么都不会发生(除了输入一个选项卡)。最初,当 UltiSnips 不工作时,我去了它的 Github 页面并阅读了似乎表明我应该添加 SirVer 插件的说明,所以我做了。即使那样,然后似乎也不起作用。我应该补充一点,您在上面看到的是我的整个 .vimrc 文件。此外,我创建了一个全新的 ~/.vim 目录,其中仅包含 Vundle 和 vim-snipmate 包,因此不应该有任何其他冲突。
我的第二个不太重要的问题是,当我查看任何这些片段文件时,大多数行都被折叠了。有什么方法可以配置 Vim,以便当我打开任何这些 .snippet 文件时,所有折叠都将打开?这样他们会更容易搜索。