3

У меня есть несколько проектов, которым нужны разные команды для запуска, сборки и тестирования, поэтому я поместил файл .vimrc в каждый из каталогов проектов, которые определяют сопоставления для некоторых кнопок F. В справочных файлах vim говорится:

'exrc' 'ex'             boolean (default off)
                        global
                        {not in Vi}
        Enables the reading of .vimrc, .exrc and .gvimrc in the current
        directory.

Таким образом, у меня включена эта опция, но когда я :cd в каталог, файл .vimrc не загружается. Если я напишу :so .\.vimrc тогда нормально грузится . Почему он не загружается автоматически?


Я использую gVim 7.3 x64 для Windows.

4 ответа4

5

Если установлено значение «exrc», в текущем каталоге выполняется поиск файла с именем _vimrc , .vimrc или _exrc при запуске. Это не делается каждый раз, когда вы :cd в новый каталог. Увидеть

:help .vimrc
2

Вот что вы можете попробовать:

autocmd BufEnter{,other event} {full path to file} {do blah}

И вы бы поместили это в группу автоматических команд:

augroup {name you want here}
    autocmd!
    autocmd BufEnter{,other event} {full path to file} source {full path to vimrc file}
    autocmd BufEnter{,other event} {full path to file} {define mapping here}
    autocmd BufEnter{,other event} {full path to file} {do blah}
    autocmd BufEnter{,other event} {full path to file} {do blah}
augroup END

Таким образом, вы должны поместить свои настройки здесь, таким образом, если вы находитесь в определенном буфере, эти отображения будут загружены.

Я также рекомендую сделать некоторые события BufLeave, чтобы сбросить эти отображения, когда вы не в этих буферах, если хотите.

это будет работать для ваших нужд? Я не уверен, что именно вам нужно, поэтому я просто сделал шаблон для вас. :)

Как я показал, вы можете сделать это различными способами, вы решаете, что лучше для ваших нужд. Извините, я на самом деле не решаю основную проблему того, что настройка не работает, хотя. :(

1

Для справки, в итоге я создал ярлык для каждого из моих проектов и загрузил специфический для проекта файл конфигурации в виде файла сеанса, используя -S session.vim .

0

На мой взгляд это лучший вариант:

if getcwd() =~ '^\(/my/safe/dir1/\|/my/safe/dir2/\)'
  set secure exrc
endif

Источник от: http://vim.wikia.com/wiki/Open_vimrc_file, но с фиксированным синтаксисом

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .