Открытие каталога в vim
Я - пользователь Mac, предлагающий vim серьезную попытку. Большинство редакторов GUI, которые я использую, позволяют мне открыть каталог как "проект", выполнив команду, например:
edit ~/www/example.com/
Обозначенный vim эквивалент vim ~/www/example.com/
покажет мне список файлов в каталоге, и я могу их открыть. Но он не устанавливает рабочий каталог vim для этого пути, я должен запустить :cd .
, чтобы установить рабочий каталог.
Есть ли какой-нибудь способ, возможно, с оболочкой script, открыть vim и установить ли его рабочий каталог на заданный путь?
Я использую MacVim, если это имеет значение.
Ответы
Ответ 1
Благодаря @sehe предложениям, я придумал это. Не уверен, что это лучшее решение, но, похоже, оно работает.
#!/bin/bash
if [ "$#" -eq 1 ];then # is there a path argument?
if test -d $1;then # open directory in vim
vim $1 +':cd %'
else # open file in vim
vim $1 +':cd %:h'
fi
else # no path argument, just open vim
vim
fi
Ответ 2
Braindead:
(cd /path/to/dir && vim file)
Меньше:
vim /path/to/dir/file +':cd %:h'
Вы всегда можете сопоставить :cd %:h
с удобным ключом или поставить автокоманду (я бы не рекомендовал последнее, но спорить о вкусе нет)
Oh и для каталогов вместо файлов:
:cd %
вполне достаточно
Ответ 3
Помогло бы это?
set autochdir
Я нашел его http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file
Ответ 4
Попробуйте добавить следующее к вашему .vimrc
let g:netrw_liststyle=3
let g:netrw_keepdir=0
Это приведет к тому, что просмотр в каталоге использует стиль дерева для отображения файлов (вы можете развернуть каталог, поместив курсор в каталог и нажав клавишу enter) и сделайте текущий рабочий каталог тем, который вы просматриваете.
Вы также можете быть заинтересованы в плагине NERDTree, который предоставляет браузер каталогов, который более продвинут, чем встроенный. У него есть опция
let g:NERDTreeChDirMode=2
чтобы текущий каталог соответствовал корню отображаемого дерева или
let g:NERDTreeChDirMode=1
чтобы изменить каталог всякий раз, когда вы используете команду (:e
или :NERDTree
), чтобы просмотреть новый каталог.
Ответ 5
$ cd ~/my/working/directory
$ vim .