Дословный перевод вашего попытанного синтаксиса $(...)
будет выглядеть так:
let g:syntastic_python_pylint_post_args = substitute(system('cat .line_length.txt'), '\n\+$', '', '')
Но на самом деле для этого не нужно запускать внешнюю команду.Vim имеет функцию низкого уровня :help readfile()
:
let g:syntastic_python_pylint_post_args = readfile('.line_length.txt')[0]
Предостережения
- В зависимости от местоположения, в котором вы запускаете Vim, конфигурация может не существовать,Вы должны учитывать это, возможно, используя условное условие
filereadable()
или просто игнорируя любые ошибки с помощью :silent!
. - Некоторые плагины только читают свои переменные конфигурации во время запуска, а после этого игнорируют любые изменения вЭто.Это должно подойти для вашего плана в
~/.vimrc
, но может повлиять на вашу способность «перезагрузить» другой проект во время выполнения (см. Ниже).
Обновление в локальной конфигурации
Ваше решение зависит от запуска Vim в «каталоге проекта».Вы также упомянули специфичный для проекта vimrc в качестве альтернативы.Вот несколько вариантов для этого:
Центральная конфигурация
Если можно централизованно настраивать определенные команды / локальные исключения, вы можете поместить такие autocmds в ваш ~/.vimrc
:
:autocmd BufRead,BufNewFile /path/to/dir/* setlocal ts=4 sw=4
Важно использовать :setlocal
вместо :set
, а также :map <buffer> ...
и :command! -buffer ...
.
С другой стороны, если вы хотите, чтобы конкретная конфигурация сохранялась вместе с проектом (и вы не хотите встраивать это во все файлы с помощью modelines ), у вас есть следующие две опции:
Локальная конфигурация со встроенной функциональностью
Если вы всегдаЗапустите Vim из корневого каталога проекта, встроенный
:set exrc
позволяет считывать файл .vimrc
из текущего каталога.Вы можете поместить туда команды :set ts=4 sw=4
.
Локальная конфигурация через плагин
В противном случае вам понадобится помощь плагина;на vim.org их несколько;Я могу порекомендовать плагин localrc (особенно с моими собственными улучшениями ), который даже допускает локальную конфигурацию для конкретного типа файла.
Обратите внимание, что чтение конфигурации изфайловая система имеет последствия для безопасности;Вы можете захотеть :set secure
.