Vimで一度に複数のファイルを開くにはどうすればよいですか?


87

Vim内からディレクトリ内のすべてのファイルを開く方法はありますか?つまり、:command実際には「下/some/pathにあるすべてのファイルをバッファに開く」ということです。

理想的には、dirの下にあるすべてのファイルを再帰的に開くとよいでしょう。

回答:


105

あなたが探しているコマンドはargsです:

例えば:

:args /path_to_dir/*

ディレクトリ内のすべてのファイルを開きます


32
**ファイルを再帰的に照合するために使用します。例:args /path_to_dir/**
daf 2010年

1
拡張子のないファイルを開くには、親ディレクトリを指定します。たとえば、args ** /。hg / hgrcは機能しますが、** / hgrcは機能しません。
79E09796 2013年

11
ファイルを開いたら、:tab allそれを使用して個々のタブに配置します。
バックリン2014年

「すべてのファイル」には、望ましくない可能性のあるサブディレクトリが含まれます。(私のvimエラー"/path_to_dir/subdir/" Illegal file name)。簡単な解決策は、2番目のコマンドを実行argd */して、リストからそれらを再度削除することです
理想的ではない2015年

次の提案で答えを完成させるのは本当に素晴らしいことです:良い習慣として、開いたすべてのファイルに同じコマンドのセットを適用する方法を示すために、次のコマンドを実行してすべての順序を適用できますmy_commands_batch.vimファイルに含まれています:argdo source my_commands_batch.vim
aturegano 2016年

21

特定の拡張子で終わるすべてのファイルを開きたいのに、なぜ機能しないのですか?私は試した

:n ./**.cs

現在のディレクトリ内のファイルのみを開きます。

私は答えを見つけました。正しいコードは :n **/*.cs

詳細については :h find


9

試しましたか

:n /some/path/*

/ some / path内のすべてのファイルを開きます

ただし、ファイルを再帰的に開くことはないと思います。

編集

たぶん**を使用すると、dafが言及したように再帰的に開きます


:nはどういう意味ですか?vimのヘルプを調べると、「最後のパターンを繰り返す」ことしかわかりません。これはキーストロークであると理解しています。コマンドモードのみのヘルプを取得する方法はありますか?
U0001 2011

1
簡単すぎる:h:n .. ":n"のヘルプを取得します。自分の質問に答えるのは好きではありません;)
U0001 2011

4

いじりを必要としない方法argsは、ファイルのリストをテキストファイルに入れて:soから、コマンドを使用してそのファイル内のコマンドを実行することです。

たとえば.php、特定のディレクトリで終わるすべてのファイルを開きたい場合は、最初files.txtにファイルのリストを含むファイルを作成し、それらを開くために使用するコマンドを前に付けます。

sp alpha.php
sp bravo.php
sp charlie.php

次に、vim内で:

:so files.txt

ファイルのリストが大きい場合はfiles.txt、の出力をファイルにリダイレクトlsし、vimマクロを使用してsp各ファイル名の前に追加することで、ファイルをすばやく生成するのは比較的簡単です。

これは明らかにargsandargdoコマンドを使用するほどエレガントではありませんが、これらのコマンドもはるかに複雑です。

コマンドラインで1つのコマンドを使用してこれを行う方法もあるかもしれませんが、16年経っても、vimプログラミングは奇妙で難解です。


面白い !特定のディレクトリのすべてのファイルが必要でない場合に盲目的に開くのではなく、開く必要のあるファイルを制御し続けるための良い方法のように思えます。
cram2208 2015年

1

ファイルを再帰的に開く別の方法

find . -type f -exec vi {} \;

4
「Vim内から」の制限を満たしていません。
ZyX

それでも必要なことをします:)
ローグ-

3
そうではありません。必要なのは、vim内から再帰的に指定されたディレクトリのファイルです。条件をkate **/*(^/)破棄する場合は、(zshグロブ構文を使用して)必要なことを実行すると言うこともできます。指定されたディレクトリからファイルを再帰的に開きます。それは「内部から」ではなく、vimをまったく使用していませんが、「必要なことはまだ実行しています」。またはkate ~/.vimrc ~/.bashrc。「withingから」、「指定されたディレクトリから」、「再帰的に」を完全に省略しますが、「必要なことはまだ実行します」:ファイルを開きます。
ZyX

これにより、ファイルが1つずつ開きます
Paul

1

引数リストに追加したい場合;

:arga what_you-d_like_to_add

見る

:he arga

詳細については、vimから/ vimで。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.