場合によっては、複数のファイルに変更を加えたい状況に陥ることがあります。または、あるファイルの内容を別のファイルにコピーすることもできます。 GUIモードの場合は、geditなどのグラフィカルテキストエディタでファイルを開き、CTRL+CおよびCTRL+Vを使用してコンテンツをコピーして貼り付けることができます。 CLIモードでは、このようなエディターを使用することはできません。心配ない! vimエディターがあるところに方法があります!このチュートリアルでは、Vimエディターを使用して複数のファイルを同時に編集する方法を学習します。信じてください、これは非常に興味深いVim機能です!
LinuxにVimをインストールする
Vimエディターは、ほとんどのLinuxディストリビューションの公式リポジトリで利用できます。したがって、デフォルトのパッケージマネージャーを使用してインストールできます。
たとえば、 Arch Linux およびそのバリアントは、コマンドを使用してインストールできます:
$ sudo pacman -S vim
Debian 、 Ubuntu :
$ sudo apt-get install vim
RHEL 、 CentOS :
$ sudo yum install vim
Fedora :
$ sudo dnf install vim
openSUSE :
$ sudo zypper install vim
LinuxのVimエディターを使用して一度に複数のファイルを編集する
Vimエディターで倍数を編集する方法はたくさんあります。私は2つの方法を知っています。
方法1
file1.txtという2つのファイルがあります およびfile2.txt 、ランダムな単語の束で。それらを見てみましょう。
$ cat file1.txt ostechnix open source technology linux unix
$ cat file2.txt line1 line2 line3 line4 line5
それでは、Vimエディターを使用してこれら2つのファイルを一度に編集してみましょう。これを行うには、次を実行します:
$ vim file1.txt file2.txt
Vimはファイルの内容を順番に表示します。最初のファイルの内容が最初に表示され、次に2番目のファイルが表示されます。

Vimエディターを使用して複数のファイルを編集する
ファイルを切り替える
次のファイルに移動するには、次のように入力します。
:n

Vimエディターでファイルを切り替える
前のファイルに戻るには、次のように入力します。
:N
ここで、Nは大文字です(タイプSHIFT + n)。
Vimエディターと同じようにファイルの編集を開始します。 「i」を押してインタラクティブモードに切り替え、必要に応じてコンテンツを変更します。完了したら、ESCを押して通常モードに戻ります。
保存されていない変更がある場合、Vimは次のファイルに移動することを許可しません。現在のファイルに変更を保存するには、次のように入力します。
ZZ
大文字のZZ(SHIFT + zz)であることに注意してください。
変更を破棄して前のファイルに移動するには、次のように入力します。
:N!
現在編集中のファイルを表示するには、次のように入力します。
:buffers

VImのバッファ内のファイルを表示する
ロードされたファイルのリストが下部に表示されます。

Vimのバッファ内のファイルのリスト
次のファイルに切り替えるには、:bufferと入力します バッファ番号が続きます。たとえば、最初のファイルに切り替えるには、次のように入力します。
:buffer 1
または、次のようにします:
:b 1

Vimで次のファイルに切り替える
バッファを簡単に切り替えるには、次のコマンドを覚えておいてください。
:bf # Go to first file. :bl # Go to last file :bn # Go to next file. :bp # Go to previous file. :b number # Go to n'th file (E.g :b 2) :bw # Close current file.
編集用に追加のファイルを開く
現在、file1.txt、file2.txtの2つのファイルを編集しています。 file3.txtという名前の別のファイルを開くことをお勧めします 編集用。あなたは何をしますか?それは簡単です! :eと入力するだけです 以下のようなファイル名が続きます。
:e file3.txt

Vimで編集するために追加のファイルを開く
これで、file3.txtを編集できます。
現在編集されているファイルの数を表示するには、次のように入力します。
:buffers

Vimのバッファ内のすべてのファイルを表示
:e を使用して、開いているファイルを切り替えることはできないことに注意してください :nのいずれかを使用する または:N 。別のファイルに切り替えるには、:bufferと入力します その後にファイルバッファ番号が続きます。
あるファイルの内容を別のファイルにコピーする
複数のファイルを同時に開いて編集する方法を知っています。場合によっては、あるファイルの内容を別のファイルにコピーしたいことがあります。それも可能です。選択したファイルに切り替えます。たとえば、file1.txtの内容をfile2.txtにコピーするとします。
これを行うには、最初にfile1.txtに切り替えます:
:buffer 1
コピーする行の前に移動カーソルを置き、 yyと入力します 行をヤンク(コピー)します。次に、file2.txtに移動します:
:buffer 2
file1.txtからコピーした行を貼り付ける場所にマウスカーソルを置き、 pと入力します。 。たとえば、コピーした行をline2とline3の間に貼り付けます。これを行うには、行の前にマウスカーソルを置き、 pと入力します。 。
サンプル出力:
line1 line2 ostechnix line3 line4 line5

Vimを使用して1つのファイルの内容を別のファイルにコピーする
現在のファイルに加えられた変更を保存するには、次のように入力します。
ZZ
繰り返しになりますが、これは二重大文字ZZ(SHIFT + z)であることに注意してください。
変更をすべてのファイルに保存し、vimエディターを終了します。タイプ:
:wq
同様に、任意のファイルから他のファイルに任意の行をコピーできます。
ファイルの内容全体を別のファイルにコピーする
1行をコピーする方法を知っています。ファイルの内容全体はどうですか?それも可能です。たとえば、file1.txtの内容全体をfile2.txtにコピーするとします。
これを行うには、最初にfile2.txtを開きます:
$ vim file2.txt
ファイルがすでにロードされている場合は、次のように入力してfile2.txtに切り替えることができます。
:buffer 2
file1.txtの内容をコピーしたい場所にカーソルを移動します。 file2.txtの5行目以降のfile1.txtの内容をコピーしたいので、カーソルを5行目に移動しました。次に、次のコマンドを入力してEnterキーを押します。
:r file1.txt

ファイルの内容全体を別のファイルにコピーする
ここで、 r 読むを意味します 。
これで、file1.txtの内容がfile2.txtのline5の後に貼り付けられていることがわかります。
line1 line2 line3 line4 line5 ostechnix open source technology linux unix

Vimを使用してファイルの内容全体を別のファイルにコピーする
現在のファイルに変更を保存するには、次のように入力します。
ZZ
ロードされたすべてのファイルにすべての変更を保存してvimエディターを終了するには、次のように入力します。
:wq
方法2
複数のファイルを一度に開くもう1つの方法は、 -oのいずれかを使用することです。 または-O フラグ。
水平ウィンドウで複数のファイルを開くには、次のコマンドを実行します。
$ vim -o file1.txt file2.txt

Vimで一度に複数のファイルを開く
ウィンドウを切り替えるには、 CTRL-w wを押します。 (つまり、 CTRL + wを押します もう一度wを押します )。または、次のショートカットを使用してウィンドウ間を移動します。
- CTRL-w k -トップウィンドウ
- CTRL-w j -下部のウィンドウ
垂直ウィンドウで複数のファイルを開くには、次のコマンドを実行します。
$ vim -O file1.txt file2.txt file3.txt

Vimの垂直ウィンドウで複数のファイルを開く
ウィンドウを切り替えるには、 CTRL-w wを押します。 (つまり、 CTRL + wを押します もう一度wを押します )。または、次のショートカットを使用してウィンドウ間を移動します。
- CTRL-w l -左ウィンドウ
- CTRL-w h -右ウィンドウ
それ以外はすべて方法1で説明したものと同じです。
たとえば、現在読み込まれているファイルを一覧表示するには、次のコマンドを実行します。
:buffers
ファイルを切り替えるには:
:buffer 1
追加のファイルを開くには、次のように入力します。
:e file3.txt
ファイルの内容全体を別のファイルにコピーするには:
:r file1.txt
方法2の唯一の違いは、 ZZを使用して現在のファイルに変更を保存したことです。 、ファイルは自動的に閉じます。また、:wq と入力して、ファイルを1つずつ閉じる必要があります。 。ただし、:wq と入力するときに、方法1に従った場合 すべての変更はすべてのファイルに保存され、すべてのファイルが一度に閉じられます。
詳細については、manページを参照してください。
$ man vim
推奨される読み物:
- Vimエディターで一度に複数の行をコメント化する方法
- LinuxでVundleを使用してVimプラグインを管理する方法
- Vimテキストエディタでスペルチェック機能を使用する方法
Linuxでvimエディターを使用して複数のファイルを編集する方法をマスターしました。ご覧のとおり、複数のファイルを編集することはそれほど難しくありません。 Vimエディターにはより強力な機能があります。
今後、Vimのヒントをさらに書きます。しばらくお待ちください!