在Vim中打开文件的快捷方式

Tec*_*ddy 123 vim keyboard-shortcuts

我想在Eclipse中使用Ctrl+ Shift+ R或自动填充的Ctrl+ N选项在Vim中打开一个文件.调用键盘快捷键,键入文件名/模式,然后从所有匹配的文件名中进行选择.

我知道打开它通常像:

:tabe <filepath>
:new <filepath>
:edit <filepath>
Run Code Online (Sandbox Code Playgroud)

这里的问题是我必须在这些情况下指定整个文件路径.

dkr*_*etz 141

我通常做的是e .(e-space-dot),它给我一个可浏览的当前目录 - 然后我可以/- 搜索名称片段,就像在文本文件中查找单词一样.我发现通常足够好,简单快捷.

  • 如果使用大写e,则不需要点,例如:E <ENTER> (65认同)
  • 您不需要空间,节省额外的25%打字.(`:e.`). (21认同)
  • 但是`:e.和`:E`之间的行为存在差异:如果当前文件已被编辑但尚未保存,前者会抱怨(如`:edit`),因为"自上次以来没有写入改变",而后者将水平分割窗口(如`:new`)以允许打开一个新文件(如果它没有被修改,它们将用新文件替换当前文件(如`:edit `)). (7认同)
  • @drozzy这发生在vim :-) (2认同)

f3l*_*lix 59

我最近爱上了fuzzyfinder.vim ...... :-)

:FuzzyFinderFile将允许您通过键入部分名称或模式来打开文件.


小智 33

:find 是另一种选择.

我从项目的根目录打开vim并将其path设置为那里.

然后,我可以使用以下命令打开位于树中任何位置的文件:

:find **/filena< tab >
Run Code Online (Sandbox Code Playgroud)

标签将通过各种匹配自动完成.(**告诉它通过路径递归搜索).


str*_*ger 25

您可以使用**以下方法在当前路径中搜索文件:

:tabe **/header.h
Run Code Online (Sandbox Code Playgroud)

如果有多个匹配,请按Tab键查看各种完成情况.


Ale*_*xey 15

考虑使用CtrlP插件.

它包含在Janus Distributive中.

允许您使用"模糊匹配"或正则表达式查找当前目录中的文件,打开缓冲区或最近使用的文件.


Ian*_*n P 12

除非我遗漏了什么,:e filename是我发现的最快的方式.

您也可以使用tab来自动填充文件名.


ale*_*2k8 10

我喜欢我的设置上的:FuzzyFinderTextMate(或Ctrl+ F).见http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim


Him*_*ury 9

我在.vimrc文件中使用了几个快捷方式(下面的确切语法).

它们基于以下事实:在90%的情况下,我想在与我当前正在编辑的文件相同的目录中打开另一个文件,或者在与该编辑文件的层次结构非常接近的目录中打开.

这是命令执行的操作:

,cd :将当前工作目录更改为您正在编辑的当前文件所在的目录.

,e:打开已填满,所以你必须指定当前工作目录中的文件只是文件名.

把它们放到.vimrc中:

map ,e :e <C-R>=expand("%:p:h") . "/" <CR>

map ,cd :cd %:p:h <CR>
Run Code Online (Sandbox Code Playgroud)

这是一系列事件:


  1. 您正在"/ home/prog"中编辑名为test.java的文件
  2. ,cd - >当前工作目录现在变为"/ home/prog"
  3. ,e - >扩展为":e/home/prog",这样你就可以填写文件名,比如test.h.

  1. ,e - >扩展为":e/home"
  2. tab - >遍历/ home的子目录
  3. enter- > cd到你想说的目录/ home/prog
  4. ,e - >扩展为":e/home/prog"


小智 8

还有命令 - 我发现它是最好的一组(我已经尝试过所有这些).安装它是一件轻微的麻烦,但是一旦安装它,它就是一个梦想.

https://wincent.com/products/command-t/


dir*_*tly 6

使用选项卡,它们在vim转义模式下输入文件路径时有效!