2009-04-19 17 views
11

"Unix in a Nutshell"という書籍は、572-573ページの複数のファイルにアクセスする方法について説明しています。 ":e"、 ":e#"、 ":e new_file"、 ":n files"、 ":args"、 ":prev"、 ":n!"などの非常に便利なコマンドがあるようです。コマンドは私を混乱させます:VIM内の複数のファイルへのアクセス

":nファイルのリストの次のファイルを編集します。

":args編集するファイルのリストを表示します。

":prev前のファイルをファイルのリストで編集します。

「:args」を実行すると、実際のリストは表示されません。コーナーに小さなテキストしかありません。私は ":e"でアクセスしたすべてのファイル、つまりバッファ内のファイルのリストを見たいと思います。

":n files"コマンドを実行すると、リストはどこに表示されますか? ":prev"と ":n"というコマンドは何ですか?

編集するファイルは1つのみです。これらのコマンドは意味をなすためには

+0

最後の部分について:バッファが1つだけ開いている場合は、それらを切り替えることはできません(開いているだけなので)。 – Rook

答えて

16

私は言及した本を読まなかったが、vimがファイルをどのように扱うかを説明しようとする。

Vimにはバッファがあります。あなたはすべてのファイルを次のもので開きます:

:e name_of_the_file.txt(つまり、ファイルをバッファにロードします。

) "ファイルを開く" あなたはまた、次のことができます。

:e *.txt

便利なオプションしばらくこのです

:set laststatus=2(ステータスライン)

:set wildmenu(容易にするために、常に表示するために開いたファイルを実行します)

netrwプラグインで標準のvimを使用している場合は、次の操作を実行できます。

:e .

はバッファを管理するには(Vimのファイルマネージャの一つのために、そう言って):

:lsあなたに現在開いているバッファのリスト(ファイル)

:bnext、および:bpreviousを与えます(または:bnおよび:bp)を使用すると、バッファを循環することができます。

:bdバッファを閉じる/ fil E(バッファが行われる)

他のバッファ・タイプは、他の目的(ヤンク/ペースト、一時的な、Vimの内部、...など)を果たす

+0

バッファの表記はEmacsと同じですか?興味深いことに、本書ではEmacs用のバッファのみを定義しています:(Emacsでファイルを開くと、そのファイルはバッファに入れられます) - あなたが持っているバッファの内容は、ウィンドウmsgstr "" "バッファとウィンドウはVimのものと異なっていますか? –

+1

はい、あなたはそれを言うことができます使用可能なバッファのタイプにはいくつかの違いがありますが、/vimにはウィンドウやタブがありますが、vimについて:ウィンドウは、vimがバッファに持つものを表示する方法です。タブは、画面上に複数のウィンドウを表示する方法です(vimのタブは、 ) – Rook

+2

':e * .txt'を使って複数のファイルを開くことはできませんが、':next'は動作するように見えます:http://stackoverflow.com/a/12304605/1858225 –

5

、あなたがやる:20のCファイルは、たとえば、あるディレクトリ内

vim *.c 

。 1つのファイルでは、次または前または重要なファイルのリストはありません。

+0

うわー!非常に良い例:)大変感謝! –

5

:N:P:AR:REW:最後のコマンドで操作します行引数リスト。

など。

> touch aaa.txt bbb.txt ccc.txt 
> gvim *.txt 

Vimはaaa.txt

:ar gives a status line 

[aaa.txt] bbb.txt ccc.txt 

:n moves to bbb.txt 

:ar gives the status line 

aaa.txt [bbb.txt] ccc.txt 

:rew rewinds us back to the start of the command line arg list to aaa.txt 

:last sends us to ccc.txt 

:e ddd.txt edits a new file ddd.txt 

:ar gives the status line 

aaa.txt bbb.txt [ccc.txt] 

で開きますので、唯一の設定コマンドは、最初のコマンドライン引数リスト上で動作します。ジョナサン・レフラーが言ったことに加えて

8

、あなたはコマンドラインから複数のファイルでVimを起動していない場合、あなたがVimの引数リストを設定することができ、Vimが開いた後経由:

注意引数リストその:lsから取得したオープンバッファのリストとは異なります。 Vimで開いているバッファをすべて閉じても、引数リストは同じままです。 :n:prevは、Vimで新しいバッファを開くことができます(そのファイルのバッファがまだ開いていない場合)。または、既存のバッファに移動します。

同様に、引数リストに影響を与えずに(またはargリストが空であっても)Vimで複数のバッファを開くことができます。 :eは新しいバッファを開きますが、必ずしも引数リストに影響するとは限りません。オープンバッファのリストと引数リストは独立しています。引数リストを繰り返し処理するのではなく、開いているバッファのリストを繰り返し処理する場合は、:bnおよび:bpとフレンドを使用してください。

2

Vimには引数リスト、バッファリスト、ウィンドウ、およびタブページがあります。引数リストは、あなたがvimで呼び出したファイルのリストです(例:vim file1 file2)。 :nと:pコマンドはこれで動作します。バッファリストは、emacsと同様に、編集中のファイルのメモリ内コピーのリストです。start(引数リスト内)にロードされたすべてのファイルもバッファリストにあることに注意してください。両方の詳細については、help buffer-listを試してください。

Windowsは、バッファのビューポートです。ウィンドウを「デスク」と考えると、バッファを置くことができます。 Windowsは空でも、他のウィンドウにも表示できるバッファを表示することができます。たとえば、同じバッファの2つの異なる領域を同時に見ることができます。試してみてください。

タブはウィンドウの集合です。たとえば、1つのウィンドウに1つのタブを、2つのウィンドウに垂直に分割した別のタブを持つことができます。詳細:ヘルプタブページをお試しください。

関連する問題