我是一名认真尝试vim的mac用户。我用过的大多数GUI编辑器都允许我通过执行如下命令来打开一个目录作为“项目”:
编辑〜/ www / example.com /
vim等价物vim ~/www/example.com/
将显示目录中的文件列表,我可以打开它们。但它没有将vim的工作目录设置为该路径,我必须运行:cd .
来设置工作目录。
是否有某种方法(可能是使用shell脚本)打开vim并将其工作目录设置为给定路径?
我实际上正在使用MacVim,如果这有任何区别的话。
答案 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)
答案 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
)浏览新目录时更改目录。