Vim:e起始目录?

时间:2010-01-31 02:37:57

标签: vim

我在Vim中编码,而不是IDE。 我的源代码经常嵌套2-3个目录。

~/foo$ find
xyz
bar/abc
bar/def

~/foo$ vim
// inside of vim
:e bar/abc
... some work ...
:e <-- is there a way I can have this :e start in ~/foo/bar instead of ~/foo ?

基本上,我想要:e在“最后编辑文件的路径名”中启动目录

谢谢!

9 个答案:

答案 0 :(得分:12)

尝试使用autochdir选项。它会自动将当前工作目录更改为最近打开或选择的文件。在.vimrc:

set autochdir

有关详细信息,请:help autochdir

答案 1 :(得分:12)

有很多理由不喜欢autochdir,因为它弄乱了一些插件,如果你最终做了:e ../../../foo.txt你没有获得任何东西。就像一个想法尝试这个cmap我敲了

:cnoremap red edit <c-r>=expand("%:h")<cr>/

然后你可以输入:red和get

:e /the/path/to/your/current/files/dir/

(编辑:可能使用z代替红色,因为有以红色开头的命令)

要扩展主题,还可以查看FuzzyFinder插件和一些自定义映射,以快速跳转到您始终编辑的常用文件。例如

10个左右的常规文件应该不超过2次击键。如果系统地命名它会有所帮助

这是我用于django的想法。

http://code.djangoproject.com/wiki/UsingVimWithDjango#Mappings

答案 2 :(得分:3)

要始终将工作目录更改为当前文件的目录,我在.vimrc中有这个目录:

if has("autocmd")
  autocmd BufEnter * :lcd %:p:h
endif " has("autocmd")

答案 3 :(得分:2)

很抱歉,但是vim:edit命令采用相对于vim实例当前工作目录解释的路径。

你有一个:cd命令,你可以使用:cd bar然后工作一段时间,然后:cd ..

希望有所帮助。

答案 4 :(得分:1)

前段时间我在vim邮件列表上提出了与此相关的问题:http://www.mail-archive.com/vim_use@googlegroups.com/msg03266.html也许你会在该主题中找到有用的提示。

我测试了很多插件,但由于基于CLI的GUI不是我的口味,我最终只使用标准的vim和一些配置设置。

正如honk所指出的,这一行将工作目录设置为与您正在处理的文件相同:

autocmd BufEnter * lcd %:p:h

我的另一个提示是使用wildmenu。当您执行以下操作时,可以更轻松地概览当前目录中的文件:e,然后选择TAB。我是一个python程序员,所以最后一行显示了如何隐藏python解释器吐出的自动生成的文件,但你可以用它来隐藏java .class文件或c .obj文件或其他。

set wildmode=list:longest
set wildignore=*.pyc,*pyo

答案 5 :(得分:0)

  • :cd更改目录
  • :pwd打印当前的。

答案 6 :(得分:0)

为什么不只是:E?浏览当前文件的目录。

:help :E

答案 7 :(得分:0)

这不完全是您想要的,但请查看NERDTree。

答案 8 :(得分:0)

在vim / gVim上我只有cd C:/blah/blah位于我的vimrc顶部。我想它适用于所有平台。

我个人为每个项目使用vagrant,所以一张CD就足够了,但我认为你也可以使用vim来使用不同的配置文件,我想是-u标志。

或者将一个键映射到你拥有的每个项目,所以按Ctrl + F1会cd path/to/project/1而Ctrl + F2可能会cd path/to/project/2吗?

注意:我不使用任何插件