打开文件夹中的所有文件

Mil*_*der 13 vim

假设您要打开/ trunk子目录下checkout文件夹中的所有文件.假设文件名为first.c second.r third.cpp.如何使用单个命令将所有文件打开到vim中.

明显的答案如下

$ vim first.c second.r third.cpp
Run Code Online (Sandbox Code Playgroud)

但你能更简单地做到这一点吗?

des*_*sau 15

听起来像你在linux或某些Unix变种上.使用星号可以获取当前文件夹中的所有文件:

$ vim *
Run Code Online (Sandbox Code Playgroud)

  • 查看vim手册页,了解有关使用vim命令行参数的更多信息.我喜欢在选项卡中打开`vim*-p`,或者'vim -O fileA fileB`来在拆分视图中打开几个文件.如果它们相似,我可能会使用`vimdiff file {old,new }`在拆分视图中打开它们,并突出显示差异. (11认同)
  • @Milktrader,你确实意识到它是一个shell而不是vim的东西,对吗?如何将_all_文件复制到文件夹中?`cp*/some/other/place`.如何删除_all_文件夹中的文件?`rm*`等 (6认同)
  • 默认情况下,这不会打开点文件.对于所有文件,你需要`{,.}*`(在bash中,假设至少存在一个以点开头的文件)或`(|.)*`(在zsh中,即使没有点文件也能工作) . (6认同)

lin*_*scl 15

要编辑当前文件夹中的所有文件,请使用:

vim *
Run Code Online (Sandbox Code Playgroud)

要编辑选项卡中的所有文件,请使用:

vim -p *
Run Code Online (Sandbox Code Playgroud)

要编辑水平拆分窗口中的所有文件,请使用:

vim -o *
Run Code Online (Sandbox Code Playgroud)

  • vim -p*为我做了这份工作 (2认同)
  • 为了完整起见:要编辑_垂直_分割窗口中的所有文件,请使用 `vim -O *` 并使用经典的 `:qa` 关闭所有内容 (2认同)

Ash*_*Ash 10

除了上面给出的答案之外,我想指出你还可以使用 vim 本身来做到这一点

:args * 
Run Code Online (Sandbox Code Playgroud)

它将 arglist 设置为目录中文件的名称,然后您可以使用:tab all(或者可以使用:argdo tabe)在选项卡中显示它们。


dur*_*rum 6

如果您有子目录,其他答案将不起作用。如果需要打开所有子目录中的所有文件,可以使用命令替换

vim `find . -type f`
Run Code Online (Sandbox Code Playgroud)

如果要忽略子目录中的文件,请写入:

vim `find . -type f -depth 1`
Run Code Online (Sandbox Code Playgroud)

当然,您可以使用该find命令随心所欲。


sup*_*org 5

使用给定模式编辑所有文件:

vim `find . -name "*your*pattern*here*"`
Run Code Online (Sandbox Code Playgroud)

当我这样做时超级有用:

vim `find . -name "*.go"`
Run Code Online (Sandbox Code Playgroud)