В попытке автоматизировать добавление плагинов в vim на основе типа файла я решил создать простую функцию в моем файле .vimrc. Я использую Vundle в качестве диспетчера плагинов и, как требуется Vundle, файл должен быть отключен. Я решил сохранить filetype в переменной и использовать его впоследствии в списке плагинов внутри Vundle. Вот соответствующий .vimrc раздел:Назначить параметр переменной .vimrc
set nocompatible " be iMproved, required
filetype plugin indent on
let var = &ft
echo var
function Plugin_set(var)
if (a:var == "python")
Plugin 'Python-mode-klen'
else
Plugin 'scrooloose/syntastic'
endif
endfunc
"Vundle Section Begin
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" All of your Plugins must be added after the following line
Plugin 'Tagbar'
Plugin 'VundleVim/Vundle.vim'
Plugin 'surround.vim'
Plugin 'better-snipmate-snippet'
Plugin 'bling/vim-airline'
Plugin 'Tabular'
Plugin 'rodjek/vim-puppet'
call Plugin_set(var)
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
Я не подвожу никакого вывода в строке «эхо вар», где я ожидал бы Filetype появиться. Тогда, конечно, выражение if принимает значение false, а else используется независимо от того, какой фактический тип файла я открываю.
Но когда я пытаюсь дать те же команды в VIM оболочки, как это:
:let var = &ft
:echo var
Я получаю фактический тип файла присваивается переменной вар.
Условный оператор также будет истинным, если я просто использовать пусть переменная = «питон» вместо пусть вар = & футов
Он смотрит на меня, что я не понимаю, правила присвоения значений параметров переменные.
Но я просто не знаю, что здесь не так.
Я очень ценю вашу помощь.
Спасибо! Эти два плагина, которые я пытался включить на основе типа файла, кажутся взаимовыгодными - если они оба включены, они начинают вмешиваться друг в друга (по крайней мере, это то, что я обнаружил для кукольного типа файла), поэтому единственным решением является включение только по одному. Означает ли это, что единственным простым решением было бы редактировать .vimrc каждый раз, прежде чем я захочу редактировать python или другие файлы. –