web-dev-qa-db-ja.com

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

vimvim 2011-12*.log、しかし、どうすればファイルを切り替えて、一度に1つずつファイルを閉じることができますか?また、編集中の現在のファイルのファイル名を確認するにはどうすればよいですか?

178
cwd

まず第一に、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
187
bsd

vimが:tabe filenameで開いている間に別のファイルを開くことができます。別のファイルに切り替えるには、次のように:tabnまたは:tabpを入力します。

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

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

61
Hanan N.

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

: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

42
Birei

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

:sp
:vsp

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

30
Not Now
:n -> Move to next file
:N -> Move to previous file
15
diham

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

"異なるbashウィンドウとVIで開いたファイル間でコピーして貼り付ける方法?"

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

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

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

わっ!

13
xtian
argadd a/b c/d e/f

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


:h arglsit:h argedit:h argsdをご覧ください


また、:argdo ...を使用して引数に対してのみ特定のアクションを実行でき、:argsd*を実行することで、引数を使用して新たに開始できます。

6
Dylan

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

vim -p file1.txt file2.txt

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

:tabe file2.txt

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

1gtを使用して最初のタブにジャンプしたり、2gtを使用して2番目のタブにジャンプしたりすることもできます。

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

最後に、現在のタブをn番目の場所に:ntabmで移動できます。ここで、n0以上の任意の数値です。

6
Cory Klein

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

vim first_file second_file ...

2つのバッファ内の2つのファイルを呼び出します。ファイルを別のファイルに切り替えるには、:n:Nを使用してください。編集中のファイルを一覧表示するために、:argsが機能します。 :help bufferは、これについてより多くの助けになります。


これはあなたの質問に答えるはずです。しかし、ここに詳細があります:

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

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

vim -d first_file second_file ...

問題が発生した場合はお知らせください。

1
aleroy

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

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

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

例:右側でファイルの確認またはテストの実行、左側でのテストおよびソースファイルの編集: enter image description here

1
Michael Durrant

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

:p前のファイル

:n次のファイル

0
bala selvam