Ответы:
Как уже было предложено, вы можете использовать autochdir, который перейдет в каталог открытого вами файла, другой вариант -
:cd mydirectory
который изменит каталог. Это может быть абсолютный или относительный путь, поэтому он :cd ..будет перемещаться на один уровень вверх. Или вы можете использовать, :cd %:hкоторый также изменит каталог, в котором находится текущий файл, но без установки autochdir.
:cd
сменит каталог на ваш домашний каталог (или в Windows распечатает текущий каталог).
:cd -
изменит каталог на предыдущий каталог, который вы посетили.
%переводит имя текущего файла, включая путь, :добавляет модификатор, hявляется заголовком , то есть путь до последнего разделителя пути, который исключает само имя файла.
Также, если вы просматриваете файловую систему с помощью проводника файлов netrw, вы можете установить текущий каталог, нажав клавишу c.
set autochdirчтобы 'c' keyэффект вступил в силу в оболочке, чтобы вы могли использовать его !command args в измененном каталоге.
Попробуйте добавить set autochdirв свой .vimrc. Если вы хотите изменить его только один раз, используйте :cd(или :cd!принудительно).
cnoremap cd. lcd %:p:hи nnoremap ,cd :cd %:p:h<CR>:pwd<CR>вместо этого
'c' keyв проводнике файлов netrw для сопровождения этого.
Я не знаю, что не так с vim. Мне нужен каталог, в котором я запускаю vim как текущий.
Я последовал совету об autochd выше и установил для него значение noautcd в моем .vimrc.
Я еще не сделал этого, но с этого момента я собираюсь запустить vim следующим образом:
vim —cmd 'cd `pwd`'
Это заставит его оставаться в текущем каталоге!
С netrw:в дополнении к нажатию cкнопки для установки текущего каталога, вы можете также поместить:
let g:netrw_keepdir= 0
в вашем .vimrc; это означает, что netrwкаталог просмотра останется таким же, как текущий каталог.
Добавление этого в мой .vimrcавтоматически изменяет рабочий каталог Vim на текущий файл:
autocmd BufEnter * silent! :lcd%:p:h
set autochdirделает то же