22

当我使用它打开 gvim 时,Alt+F2它会将我的主文件夹作为其默认工作目录。

如何在运行 gvim 之后或期间更改工作文件夹?打开gvim时我可以将该文件夹作为参数传递吗?

4

4 回答 4

52

您可以使用快捷方式。

不过,最简单的方法是

:edit $MYVIMRC

追加一行

cd /home/user/my/work/dir

保存(可选执行:w|source %以立即重新加载)


vim里面

利用

:pwd
:cd some/other/dir

查看/更改当前工作目录。

使用例如

:cd %:h

切换到包含在活动窗口中加载的文件的目录。如果您需要/想要经常这样做,请考虑设置“autochdir”

:se autochdir

从文档:

When on, Vim will change the current working directory
whenever you open a file, switch buffers, delete a
buffer or open/close a window.  It will change to the
directory containing the file which was opened or
selected.  This option is provided for backward
compatibility with the Vim released with Sun ONE
Studio 4 Enterprise Edition.

注意:当此选项在某些插件上时可能不起作用。

于 2012-09-19T21:58:15.283 回答
12

您可以将一个文件夹传递给gvim(当您有 NERDTree 时,它​​将是一个文件树)您可以cd在开始之前在您想要的目录中开始或使用:cd <path>命令来更改当前工作目录,可以-c在运行 Vim 时将其传递给 flag:

$ [g]vim -c 'cd <path>'

您还可以使用:pwd命令检查当前目录。

于 2012-09-19T21:59:58.623 回答
6

您可以使用命令更改工作目录:cd。您也可以在命令行选项中传递它,如下所示:

vim -c "cd wherever"

如果您希望工作目录始终是您当前正在编辑的文件,您可以使用该set autochdir选项。把它放在你的 ~/.vimrc 中或查看:help autochdir.

于 2012-09-20T00:40:07.550 回答
0

我知道我迟到了,但我开始使用CDargs这是一个 bash 工具来将某些目录标记为书签,然后使用cdb并按 Tab 列出所有书签目录。
有一个与此工具的设置文件交互的 vim 插件:vim-cdargs
这个组合非常适合我在项目之间切换。
或者打开 gvim 后快速转到某个书签文件夹,然后使用 Ctrl-p 插件快速找到我要编辑的文件。

额外提示:我什至不想输入 :Cdb 所以我缩写 c 通过将其添加到我的 vimrc 来扩展为 :Cdb:
cnoreabbrev c Cdb
之后键入:c后跟一个空格,将扩展为:Cdb.

编辑:我现在使用vim-startify,它为 vim 提供一个起始页,显示最近使用的文件。通过该选项let g:startify_change_to_vcs_root = 1,它会将工作目录更改为您打开的文件的最外层 vcs 根文件夹。这几乎总是我想要的。
此外,我创建了自己的“插件”,其中包含一些键映射,这些映射将切换到当前缓冲区路径中最近或最远的目录,其中包含 .git 目录或文件。为了在当前 git 子模块或整个超级模块中搜索文件之间轻松切换。

此外,我使用fzf-vim而不是 Ctrl-p 切换到 fzf,它的工作速度明显更快,并且可配置性更高。


于 2017-05-10T12:33:08.050 回答