VIMで複数のファイルを編集するにはどうすればよいですか?


回答:


171

まず第一に、vimの中で次のように入力します。:(コロン)をしてから助けhelp、ALA :help短いチュートリアルを含め、セルフヘルプトピックのリストのため。トピックのリスト内で、目的のトピックの上にカーソルを移動してからを押すctrl]と、そのトピックが開きます。

始めるのに適した場所はトピックです

|usr_07.txt|  Editing more than one file

では、答えに進みましょう。

ファイルのリストを使用してvimを開始した後、:nextまたは:n略して入力すると、次のファイルに移動できます。 :wnext現在の変更を書き込み、次のファイルに移動するための略です。

同様の:previous:wpreviousおよびもあり:Nextます。(の:p省略形であることに注意してください:print。の省略形:previous:prevまたは:Nです。)

ファイルリストの:args現在位置を確認するには、入力し、現在編集中のファイルを[](括弧)に表示します。

例:

vim foo.txt bar.txt
:args

結果:

[foo.txt] bar.txt

25
:wnは:wnextの短縮形です。
コフ

:rewを実行して、最初のファイルに戻ることもできます。:e#は2つのファイル間でスワップします。:n!書き込みなしで次のファイルに移動します。:set autowriteもご覧ください。
サスキハ

4
複数のバッファ / ウィンドウ / タブに関しては、StackOverflowのVimで複数のファイルを効果的に操作する方法も参照してくださいおよびbuffersのようなVimのタブの使用
mmoya

1
第22章「編集するファイルの検索」も非常に便利だと感じました。ディレクトリエクスプローラを使用して必要なファイルを編集します。
ハリーモレノ

:wn素晴らしいもの。
-rammayur

54

vimが開いているときに別のファイルを開くことができ、それに応じて、:tabe filename入力したファイル:tabn:tabp次のファイルや前のファイルに切り替えることができます。

キーボードショートカットgTおよびgtは、編集モード(挿入モード、置換モードなど)ではないときにタブを切り替えるためにも使用できます。一部のシステムではCtrl+ Alt+ Page UpおよびCtrl+ Alt+でPage Downタブ切り替えも許可されますが、これは常に機能するとは限りません(たとえば、OS X端末では「そのまま」では機能しません)。

また、vimアプリの上部にファイル名が表示されます。


16
この。タブでも開いているファイル:vim -p file1 file2
今ではありません

すごい!vimを何年も使用しているにもかかわらず、これに出くわすことはありませんでした。これはすべてを変えます
me_and

タブは複数のファイルで動作するように意図されていないことに注意してください。それらは複数のレイアウトで働くことを意図しています記事を参照してください
patryk.beza

5
余談:すでにvimを使用していて、別のファイルを追加する場合は、::argadd filenameを使用:nextしてからそのファイルに追加できます 。同様に、:argdel filename編集中のファイルの1つを削除するために使用できます。
Luv2code

36

バッファーを切り替えるコマンド:

:bf            # Go to first file.
:bl            # Go to last file
:bn            # Go to next file.
:bp            # Go to previous file.
:bw            # Close file.

:help buffer より多くの情報を見つけるために

ファイル名の使用を知っているCtrl+ G:fileまたは:f


1
:bwファイルを閉じる :bw自分が何をしているのかわかっている場合にのみ使用すべきだと書かれている箇所のヘルプを読むことを忘れないでください。それは大したことではないのですが、あなたは、ファイルについてのマークとの情報のすべてを一掃する場合を除き、より良い使用:bdまたは:q普通の人のような
ディラン

1
詳細は:bwあなたが興味がある場合には:vi.stackexchange.com/questions/2212/...
wisbucky

25

与えられた答えとは別の別のオプションは、ウィンドウを次のように分割することです:

:sp
:vsp

:vsp垂直分割用です。次にCtrl+W <ARROW_KEYS>、ペイン内を移動するために使用します。


4
あなたは使用することができます:vs代わりに:vsp
Khaja Minhajuddin

2
またはCtrl+W, v、垂直分割およびCtrl+W, s水平分割の場合のみです。
ルスラン

1
私はCTRL+W何年も使用していますが、最近、Webページ内で多くのVI編集を行っています。毎回、私も考えずにコマンドを入力すると... ...うーん...ブラウザのタブがなくなっています!私は忘れ続けます。私は本当に新しいショートカットを学ぶ必要があります。
-Jeach


10

スーパーユーザーで同様の質問をしましたが、

「異なるbashウィンドウとVIで開いたファイル間でコピーアンドペーストする方法は?」

私の質問に対する答えは、できないということでしたが、VIMの:splitコマンドを使用して、1つのbashウィンドウで2つのファイルを開くことができます。

  1. でファイルを$ vim file1開き、:split file2コマンドを使用してVIM内の2番目のファイルを開きます。
  2. または、$ vim -o file1 file2bashから使用します。
  3. ファイルの切り替え-アクティブなファイルを切り替えます-とVIMにctrl- - 。w ctrlw
  4. 次に、file1のコピー(またはヤンク)yy、スイッチ(3)、およびp内容のfile2への貼り付け(または配置)が操作例です。
  5. いずれかのウィンドウがアクティブな場合、他のすべては正常であるため、:q終了して:q!強制終了します。

私のbashは白黒なので、各画面のファイル名は、そこに引用されているファイル名と逆の「選択された」行としてスタイル設定されています。

すごい!


6

複数のファイルを編集する最も便利な方法は、タブを使用することです。次のようなコマンドラインを使用して、複数のファイルを別々のタブで開くことができます。

vim -p file1.txt file2.txt

または、すでにvimを開いている場合は、次のように新しいタブで新しいファイルを開くことができます。

:tabe file2.txt

タブを開いたら、を使用gtして次のタブgTを表示し、前のタブを表示します。

で最初のタブにジャンプすることもでき1gtます2gt

を使用してタブを閉じることができます :tabc

最後に、現在のタブを移動することができますnと目の位置:ntabmどこn任意の数以上に等しいです0


6
argadd a/b c/d e/f

argadd ...すべてのファイルをargsおよび:ls/に追加し、:buffersそれらを編集できるようにします。


参照してください。:h arglsit:h argedit:h argsd


また、を使用してargsに対してのみ特定のアクションを実行:argdo ...できます:argsd*


0

そうする方法はたくさんあります。最初の方法は、あまり便利ではないかもしれませんが、vim編集したいファイルを呼び出すことです-作成:

vim first_file second_file ...

2つのバッファー内の2つのファイルを呼び出します。ファイルから別のファイルに切り替えるには、とを使用:nしてください:N。編集中のファイルをリスト:argsするには、仕事をします。:help bufferこれであなたを助けます。


これで質問に答えるはずです。ただし、詳細は次のとおりです。

vimを使用してコンソール画面を分割することにより、より便利な方法でファイルを編集する方法があります。これを行うには、vimを使用しながら:split:sp)または:vsplit:vs)で2つのフレームを開きます。次に、+ > +の組み合わせを使用して、これらのフレーム内を移動します。また、使用することができます+ +矢印キーまたはキー(、、または次のフレームに対応します)。これが完了したら、で目的のファイルを編集します。これであなたを助けます。CtrlWCtrlWCtrlWHJKL:e file_name:help opening-window

ファイル間の違いを確認したい場合は、-d引数を使用するか、対応するファイルでvimdiffプログラムを呼び出します(同じです)。:help diffこれであなたを助けます。

vim -d first_file second_file ...

問題がある場合はお知らせください。


0

複数のファイルを編集するには、水平と垂直の両方の分割ウィンドウを使用するのが好きです。

tmuxを使用してこれらのウィンドウをより簡単に管理します

https://tmux.github.io/ 「ターミナルマルチプレクサとは何ですか?1つのターミナルで複数のプログラムを簡単に切り替え、それらをバックグラウンドで実行し続け、別のターミナルに再接続できます。マニュアルを参照してください。」

例:右側でファイルを表示するかテストを実行し、左側でテストファイルとソースファイルを編集します。 ここに画像の説明を入力してください


0

:e #(filename) 開いている2つのファイルを切り替える

:p 前のファイル用

:n 次のファイル用


U&Lへようこそ、これは数年前に投稿された他の回答にほとんど何も追加しません。
アルケマール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.