Беглые команды недоступны после открытия .vimrc для редактирования

Моя система представляет собой OS X 10.6 с MacVim 7.3 (GUI) и Vim 7.2 (на iTerm).

На MacVim Fugitive вообще не работает.

В Vim это немного по-другому. Я установил сопоставление для открытия файла .vimrc следующим образом:

nmap <silent> <leader>ev :e $MYVIMRC<CR>

Сразу после открытия vim доступны все команды Fugitive, но после открытия файла .vimrc с использованием приведенного выше сопоставления я не могу выполнить ни одну из команд Fugitive :G*. Если я открываю файл .vimrc нормально (т.е. с :e ~/.vimrc), то все в порядке.

Весь мой каталог .vim.vimrc вместо vimrc в корне) доступен здесь.

Что я могу сделать, чтобы заставить его работать?


person freitass    schedule 19.03.2012    source источник
comment
Что вы имеете в виду под На MacVim Fugitive вообще не работает.? Каковы симптомы? С другой стороны, попробуйте заменить $MYVIMRC в вашем сопоставлении на ~/.vimrc или ~/.vim/vimrc, а также попробуйте выполнить вручную :e $MYVIMRC. Я подозреваю, что проблема как-то связана с тем, что ваш ~/.vimrc является символической ссылкой на ~/.vim/vimrc.   -  person romainl    schedule 20.03.2012
comment
@romainl: Извините, на MacVim Fugitive вообще не работает. Я имел в виду, что команды Fugitive недоступны с самого начала. Мне даже не нужно выдавать \ev, как для терминала vim. Что неловко, так это то, что у меня установлено семь других плагинов, и они работают нормально, только Fugitive ведет себя так. Я изучу символическую ссылку. Спасибо   -  person freitass    schedule 20.03.2012


Ответы (2)


Функции Fugitive доступны только в том случае, если рассматриваемый файл является частью репозитория Git. Вполне вероятно, что ваш файл .vimrc не находится под контролем версий Git, а если и есть, то вы редактировали его с помощью символической ссылки, которую Fugitive не обрабатывает на момент написания.

Если ваш файл .vimrc действительно находится под контролем версий, вы можете исправить это, вызвав :edit по каноническому пути к файлу, а не через какие-либо символические ссылки, что заставит Fugitive правильно найти подкаталог .git и метаданные внутри.

person Community    schedule 22.03.2012
comment
Конечно! Я думал, что Беглец основан на :pwd, но он основан на текущем файле. Спасибо! - person freitass; 30.03.2012

Если ваш $MYVIMRC является символической ссылкой, попробуйте это сопоставление.

noremap <leader>ev :execute 'e ' . resolve(expand($MYVIMRC))<CR>

Он откроет целевой файл vimrc, который находится в репозитории git и, таким образом, Fugitive может подобрать его.

person Xuan    schedule 07.03.2013