在vim中打开一个目录

时间:2011-05-08 21:57:27

标签: vim vi macvim

我是一名认真尝试vim的mac用户。我用过的大多数GUI编辑器都允许我通过执行如下命令来打开一个目录作为“项目”:

  

编辑〜/ www / example.com /

vim等价物vim ~/www/example.com/将显示目录中的文件列表,我可以打开它们。但它没有将vim的工作目录设置为该路径,我必须运行:cd .来设置工作目录。

是否有某种方法(可能是使用shell脚本)打开vim并将其工作目录设置为给定路径?

我实际上正在使用MacVim,如果这有任何区别的话。

5 个答案:

答案 0 :(得分:8)

感谢@ 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

答案 1 :(得分:6)

新空房禁地:

 (cd /path/to/dir && vim file)

不那么:

 vim /path/to/dir/file +':cd %:h'

你可以随时将:cd %:h映射到一个方便的键或放入一个自动命令(我实际上不推荐后者,但没有关于品味的争论)


哦,对于目录而不是文件:

:cd %

足够

答案 2 :(得分:2)

这会有帮助吗?

set autochdir

我发现它http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file

答案 3 :(得分:2)

$ cd ~/my/working/directory
$ vim .

答案 4 :(得分:1)

尝试将以下内容添加到.vimrc

let g:netrw_liststyle=3
let g:netrw_keepdir=0

这将使目录浏览使用树样式来显示文件(您可以通过将光标放在目录上并按Enter键来扩展目录)并使当前工作目录也是您正在浏览的目录。

您可能也对NERDTree插件感兴趣,该插件提供了比内置浏览器更先进的目录浏览器。它有一个选项

let g:NERDTreeChDirMode=2

使当前目录与显示的树的根或

匹配
let g:NERDTreeChDirMode=1

在您使用命令(:e:NERDTree)浏览新目录时更改目录。