想像してください。あなたはLinuxシステムに深く関与し、必死にファイルを編集しようとしています。しかし、試行錯誤するごとに、それはまるで古代の暗号を解読しているかのような感覚です。クリックするたびにますます迷子になるなら、なぜLinux向けのVimに頼らないのでしょうか?
このチュートリアルでは、広く評価されているテキストエディタであるVimの秘密を解き明かし、Linuxの放浪者からコマンドラインの達人に変身させます。
比喩的な剣(キーボード)を手に取り、Vimの世界へと旅立ちましょう!
前提条件
LinuxシステムでVimをマスターするためには、以下のいくつかの前提条件が必要です:
- A Linux OS – This tutorial uses an Ubuntu 22.04 LTS.
- マシンにVimがインストールされていること – Vimのインストール方法については、公式ドキュメントを参照してください。
LinuxでのVimを使用したファイルの作成と編集
Vimは異なるモードで動作し、それぞれ独自の編集機能を提供します。しかし、それらのモードに移る前に、まずはLinuxでVimを使ってファイルを作成・編集する方法を学ぶ必要があります。
Vimを使用してファイルを作成・編集するには、以下の手順に従ってください:
1. ターミナルを開き、以下のvim
コマンドを実行して、Vimでsshd_config
(任意)という名前のファイルを作成します。このコマンドは、ファイルが存在しない場合は自動的に作成し、存在する場合は既存のファイルをVimで開きます。
Vimで新しいファイルを作成した場合、以下のようなインターフェースが表示され、Vimが現在コマンドモードにあることを示します。コマンドモードは、Vimエディターでテキストと対話する主要なモードの一つです。

2. 次に、下記のテキストをクリップボードにコピーします。これには、実際のサーバー設定を反映していない、デモンストレーション用のサンプルSSHサーバー設定が含まれています。
3. Vim上でi
を押し、挿入モードに入ります。挿入モードもVimの主要なモードの一つで、文書の内容を入力および変更することができます。
挿入モードに入ると、以下のようにステータスラインに— INSERT —が表示されます。

4. 今、Ctrl+Shift+VまたはShift+Insertを押して、ステップ2でコピーしたテキストをVimエディターに貼り付け、Escを押して挿入モードを終了します(コマンドモードに切り替えます)。
— INSERT —ステータスが消えることに注意してください。これは、コマンドモードに戻ったことを意味します。

5. 最後に、:w
コマンドを入力し、Enterを押してファイルに変更を保存します(エディターを閉じずに)。
必要に応じて、以下の他のコマンドを実行できます:
Command | Details |
---|---|
:q! |
Quit the editor without saving the changes. |
:w! |
Write the current file changes forcefully. |
:wq |
Save the changes and quit the editor (or :wq! to save and quit forcefully). |
e! |
Revert to the last saved version of the file. |

status lineは、この場合、ファイルに書き込まれたデータサイズを表示します。行数は23行 (23L) で、バイト数は624バイト (624B) です。

Vimでテキストを移動する
Vimでファイルを作成して編集する技術を習得した後は、Vimの重要なスキルであるテキストの移動に取り組みます。効果的な移動は、広大な風景を探検するかのように、Vimの潜在能力を引き出す鍵です。
Vimでテキストを移動する方法を見てみましょう。以下の手順で進んでください:
1. まず、:set nu
コマンドを入力して Enter キーを押して、Vimで行番号を設定します。行番号は、コードや大きな文書を扱う際に重要なエディタ機能です。
成功すれば、以下に示すようにエディタ内で行番号が表示されます。

2. 次に、コマンドモードに切り替え (Esc
)、そしてファイルの先頭にジャンプするために gg
コマンドを押します。

3. 次に、MaxSessions パラメータの先頭に到達するまで、以下のコマンドのいずれかを押し、カーソルを行末に移動させるために $
を押します。
Command | Details |
---|---|
h |
Move the cursor to the left or the previous character. |
j |
Move the cursor one line down. |
k |
Move the cursor one line up. |
l |
Move the cursor to the right or the next character. |

4. 今度は、次のテキストを置換します:
i
を押して挿入モードに切り替えます。- 値 (10) を削除して、代わりに 25 を入力します。
- コマンドモードに戻り (
Esc
)、変更を保存します (:w
)。

特定の位置にテキストを挿入
Vimは、新しいテキストを挿入する場所と方法を正確に制御する範囲のコマンドを提供します(必要な場所に正確に)。この機能は、行の先頭、現在のカーソル位置のすぐ後ろ、または行の末尾に挿入したい場合に機能します。
特定のポイントにテキストを挿入する方法を確認するには、次の手順を実行します。
1. 行の末尾にカーソルがあるときにI
(Shift+I)を押して挿入モードに入り、同時にカーソルを行の先頭に移動します。

2. コマンドモードに切り替え(Esc
)、現在のテキスト行の任意の文字にカーソルを移動し(つまり、先頭に移動)、a
コマンドを押します。
このコマンドにより、Vimが挿入モードに切り替わり、前の位置から次の文字にカーソルが移動します。この動作は、既存のテキストを妨げることなく行の中央にテキストを迅速に追加するのに便利です。

3. ‘y’を挿入して、MaxSessionキーをMyaxSessionとして綴り、次にコマンドモードに戻ります(Esc
)。
新しい文字‘y’が最初の文字の直後に表示されることに気付くでしょう。

4. 今、次のようにテキスト行を変更します。
A
コマンドを実行するには、Shift+Aを押します。これにより、Vimが挿入モードに入り、カーソルが行の末尾に移動します。この動作は、セミコロンのようなコンテンツを迅速に追加したり、文を完成させるのに最適です。- 行の末尾に0を追加して、値を250に変更します。
- コマンドモードに戻り、変更内容を保存します(:w)。

新しい行を開く
あなたがVimファイル内でテキストを戦略的に配置する方法をマスターしたら、コンテンツをよく構造化し整理された状態に保つスキルを探求する時が来ました。Vimで新しい行を開く能力は、より読みやすく美しく見えるテキストへの入り口です。
新しい行を開くために、以下の手順を完了します。
1. コマンドモードで、現在のテキスト行の下に新しい行を開くには、o
を押します。次に、MyaxSessionsに関する以下のコメントを追加します。

2. コマンドモードに切り替えます(Esc
)、カーソルを他のテキスト行に移動し、O
(Shift+O)を押して現在のテキスト行の上に新しい行を追加します。

3. 次に、ファイルに以下のコマンドを追加し、変更内容を保存します(:w
)。

テキストの削除と置換
Vimは、基本的な削除やバックスペースキーを超えるテキストの削除や置換のための効率的なコマンドを提供しています。これらのコマンドは、コマンドモードからアクセスできるため、迅速に修正や修正を行うことができ、文字、単語、または行全体を削除または置換することができます。
Linux用Vimでテキストを削除して置換するには、以下を実行します:
1. カーソルをMyaxSessionsパラメータに移動し、特に「y」文字に移動します。

2. 次に、この場合は「y」であるカーソルの下の文字を即座に削除するために、x
を押します。
パラメータは、以下に示すように、MaxSessionsという元のテキストに戻ります。

3. 行PermitRootLogin no:にカーソルを移動します。

4. 今、カーソルの位置に関係なく、テキストの行全体を削除するために"_dd
を押します。
コマンドの"_
部分は、削除されたテキストを破棄するブラックホールレジスタを指定します(削除されたテキストはどのレジスタにも保存されません)。
Vimには、テキストを保存できる独自の一連のレジスタがあり、ブラックホールレジスタを指定しない場合、コマンドはテキストを削除するのではなく、切り取ります。
成功すると、PermitRootLogin no:行が消えたことに気づくでしょう。

5. コマンドモードで、行# Specifies whether root can log in using sshのSpecifiesという単語の先頭にカーソルを置きます。

6. 最後に、"_dw
コマンドを実行し、以下に示すようにSpecifiesという単語を削除します。

オプションとして、追加の削除操作に次のコマンドを選択できます。
Command | Details |
---|---|
"_d$ |
Delete texts from the cursor position to the end of the line. |
"_D |
Deletes from the cursor position to the end of the line. |
"_d^ |
Deletes from the cursor position to the first non-whitespace character of the line |
"_dgg |
Deletes from the cursor position to the beginning of the file. |
"_dG |
Deletes from the cursor position to the end of the file. |
文字やテキスト行の置換
Vimの戦略的な削除から、文字やテキストの行を置き換えるという考え方に注目しましょう。置換は、テキストを精緻に洗練し再定義するための筆遣いです。幸いなことに、Vimでは一度限りの文字の置換や、テキストの全行を実行することができます。
文字やテキストの行を置換するためには、以下の手順に従ってください:
1. カーソルを AuthorizedKeysFile .ssh/authorized_keysの行に移動し、特に authorizedの中の ‘z’ の文字に配置します。以下に示すように:

2. 配置したら、r
を押します。これはVimにカーソルの下の文字を置き換えることを伝え、’s’ の文字を入力します。 r
コマンドは、最初に挿入モード (i
) に入ることなく文字を置き換えることができます。
authorizedの中の ‘z’ の文字が ‘s’ の文字で置き換えられ、単語はauthorisedに変わりました。

3. 次に、AuthorizeKeysFileの中の文字 ‘z’ の位置にカーソルを置きます。

4. R
(Shift+R) を押して置換モードに入り、文字を置き換えるために ‘s’ と入力しますが、まだ置換モードを終了しないでください。
r
コマンドでは一度に一文字だけ置き換えることができますが、R
コマンドは連続して入力することで既存のテキストを上書きすることができます。

5. 最終的に、以下のテキストをクリップボードにコピーし、カーソルをファイルの先頭に移動してコピーしたテキストを貼り付けます(Ctrl+Shift+VまたはShift+Insert)。
まだ置換モードにいるので、貼り付けたテキストはファイルの最初の行を置き換えます。

ファイル内のテキストを検索する
、やり直したり元に戻したりする際に役立つスキルです。Vimを使用すると、ファイル内の特定の単語、フレーズ、またはパターンを検索することができます。
無駄にスクロールせずに特定のテキストセクションを迅速に見つけて操作できると、生産性が飛躍的に向上するでしょう。
ファイル内のテキストを検索するには、以下の手順を実行します:
1. カーソルをファイルの先頭に移動します(gg
コマンド)、検索モードを開始するために/
(スラッシュ)を押し、検索語logを入力してEnterキーを押します。
このコマンドは指定した語(log)を検索し、カーソルを次の出現箇所に移動します。

2. 次に、n
を押して次の出現箇所に移動します。

3. さらに、N
(Shift+N)を押して前の出現箇所に戻ります。

さらに、Vimは以下のような他の検索ショートカットも提供しており、より柔軟な検索が可能です:
Command | Details |
---|---|
? |
Initiates a reverse search of a term. |
* |
Performs a forward search for the word under the cursor. Continue pressing * to cycle through further occurrences of the word until it loops back to the first instance. |
# |
Performs a backward search for the word under the cursor. Continuously pressing # works similarly to the * command but cycles until it loops back to the last instance. |
他のVimコマンドとの検索の組み合わせ
Vimの複雑な操作方法をナビゲートしながら、なぜ検索を他のコマンドと組み合わせてテキスト編集のスキルをさらに高めないのでしょうか?
Vimは、特定の出現箇所の置換からパターンに一致する行を削除するまでのアクションを実行できます。
Vimで検索とアクションのシナジーを目撃するには、次の操作を実行してください。
1. コマンドモードで、削除を開始するポイントにカーソルを置きます(つまり、検索語 log の最初の出現箇所)。

2. 次に、d/log
と入力してEnterキーを押してください。すると、カーソルの位置から次の log の出現箇所までのすべてが削除されます。以下に示します。

3. 前のアクションを元に戻します(u
コマンドを使用)し、検索語 log の最初のインスタンスにカーソルを置きます。

4. 次に、以下のコマンドを実行して特定の範囲内のテキストを検索して置換します。ここで:
:.
– 現在の行でコマンドモード(:
)に入ります(.
)。,$
– 置換の範囲を指定します。s/log/logs/g
– Substitute all occurrences of the old word (log
) with new (logs
) globally (g
) within the specified range.

Vimのビジュアルモードでテキストを選択する
Vimで検索の芸術を他のコマンドと融合させるだけでなく、テキスト編集の経験を変革する機能を明らかにする必要があります。Vimのビジュアルモードは、テキストをよりインタラクティブで視覚的に操作できるようにします。ビジュアルモードは、テキストの一部をハイライトして操作する柔軟で効率的な方法を提供します。
テキストを選択して編集するには、個々の文字を選択して編集するか、次のようにテキストのブロックを選択して編集できます。
1. ファイルの先頭にカーソルを移動します(gg
コマンド)、そして v
を押してビジュアルモードをアクティブにします。

2. カーソルを行末に移動するには $
を押します。ビジュアルモードにいるので、このコマンドはテキスト行をハイライト表示します。

3. 以下のようにコピー&ペーストを行います:
- ハイライト表示されたテキストを Vim のレジスタにコピーするには
y
を押します。 - ファイル内の最後の行の末尾にカーソルを移動するには
G$
を押します。 - コピーしたテキストを(カーソルの後ろに)ペーストするには
p
を押します。
コピーしたテキストはy
コマンドで Vim のレジスタに保存され、p
コマンドはレジスタからテキストをペーストします。


4. 前のアクションを取り消すには (u
)、ファイルの先頭にカーソルを移動し(gg
)、そしてビジュアルラインモードに入るために V
(Ctrl+V)を押します。
ビジュアルモードでは単一の行を選択するのとは異なり、ビジュアルラインモードでは複数の行を選択できます。

5. ファイルの先頭から Protocol 2 行まで文字を選択するには下矢印キーを使用します。

6. 選択した複数行のテキストを切り取るには d
を押します。

7. 最後に、ステップ 6 で切り取ったテキストを以下のように貼り付けます:
- ファイルの最後の行に移動(
G
)、そしてその下に新しい行を作成します(o
)。 - 戻ってコマンドモード(
Esc
)に戻り、テキスト(p
)を貼り付けてください。

結論
おめでとうございます!あなたはLinux用のVimの複雑な領域を航海し、その過程でテキスト編集の知恵の宝庫を開拓しました。ファイルの作成や編集からビジュアルモードの技術を習得し、あなたはVimの達人の帽子をかぶりました。
しかし、あなたのコマンドラインの冒険はこれで終わりではありません。なぜなら、マクロやプラグインなどの高度な機能を探索して、Vimをあなたのニーズに合わせてカスタマイズできるからです。
これらの基本的なスキルを使用して、ファイル管理、複雑な検索パターン、および個人用のVimスクリプティングなど、Vimのより深い側面を探求してください。