Я хочу выполнить команду автоматически после перехода в новый каталог из vim. Например, я открываю gvim и запускаю:
:cd ~/src/player
В этот момент я бы хотел, чтобы vim автоматически искал файл, который находится в этом каталоге.
Возможно ли это?
Вы можете написать псевдоним для этого в вашем .vimrc:
command -nargs=1 Mycd call MyCd(<args>) function MyCd(path) cd a:path e somefile.ext endfunction
Тогда просто наберите:
:Mycd /some/path/
Не совсем то, что вы просите, но
<a href="http://vimdoc.sourceforge.net/htmldoc/autocmd.html#:au" rel="nofollow noreferrer">:au</a> <a href="http://vimdoc.sourceforge.net/htmldoc/autocmd.html#BufEnter" rel="nofollow noreferrer">BufEnter</a>,<a href="http://vimdoc.sourceforge.net/htmldoc/autocmd.html#BufFilePost" rel="nofollow noreferrer">BufFilePost</a> * <a href="http://vimdoc.sourceforge.net/htmldoc/editing.html#:lc" rel="nofollow noreferrer">lc</a> <a href="http://vimdoc.sourceforge.net/htmldoc/cmdline.html#<afile>" rel="nofollow noreferrer"><afile></a><a href="http://vimdoc.sourceforge.net/htmldoc/cmdline.html#::h" rel="nofollow noreferrer">:h</a>
сделает так, чтобы при каждом открытии нового файла (например, с помощью :e ~/src/player/README) вы автоматически меняли каталоги на ~/src/player. Если вы откроете несколько буферов, при переключении между ними вы перейдете в каталог, содержащий локальный буфер, а если вы откроете несколько вкладок, они останутся в соответствующих каталогах.
:e ~/src/player/README
~/src/player