我在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在“最后编辑文件的路径名”中启动目录
谢谢!
答案 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
?浏览当前文件的目录。
答案 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
吗?
注意:我不使用任何插件