Ответы:
Как уже было предложено, вы можете использовать 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
делает то же