こんにちは皆さん、本日はLinuxのVIMエディタの使い方について解説していきます。vim コマンドはターミナル上でファイルの作成をしたり編集をしたりする機能を持ちます。本記事ではEC2インスタンスにSSH接続した状態で「Linuxの基礎コマンド」の理解がある前提で開設をしていきます。

vi と vim コマンドの違い
vi コマンドというものもありますが、vi は元々Linuxに最初に実装されたエディタコマンドでしたが、その拡張後継として vim コマンドが導入されました。vim では vi には無かった「もとに戻す(Undo)」機能の多重化とシンタックスハイライト(ファイルごとのドキュメント内の文法による色分け)機能などが追加されています。
VI はVisual editorの頭文字のViから名付けられています。
VIM は Vi Improvedの V と Im から名付けられています。
EC2インスタンスではデフォルトで vi コマンドが vim として認識されています。次のコマンドで vi コマンドのバージョンを表示してみましょう。1行目に「VIM – Vi IMproved」と表示されているのが分かります。
vi --version
【出力結果1行目】
VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Nov 18 2024 20:16:52)
EC2インスタンスでは vi コマンド=vim コマンドです。
以降、EC2インスタンス上での作業なのでvi = vim として説明していきます。
vi コマンドの使い方
既存のファイルを開く
既存のファイルを開く場合は、ファイル名を指定した vi コマンドを実行します。
vi {既存ファイル名}
新規ファイルを開く
新規ファイルを作成する方法は2つあります。
【ファイル名を指定しないで開く方法】
以下の様にファイル名を指定せずにファイルを開いた場合は新規ファイルの作成中状態になります。保存する際にファイル名を指定してファイルを閉じることになりますが、保存しないままエディタを終了した場合はファイルは作成されません。
vi
【新規ファイル名を指定して開く方法】
vi コマンドにファイル名を指定した場合も新規ファイルの作成中状態になります。ファイル名既に指定されているので保存時にファイル名の指定は無くなります。前述同様に保存しないままエディタを終了した場合はファイルは作成されません。
vi {新規ファイル名}
新規ファイル名を指定して開く方法は既存ファイルを開く方法と同じなので新規ファイルを作成する際は既存ファイルと重複しないように気をつけましょう。
Linux上では日本語のファイル名は文字化けして読めなかったりとバグの原因になるので英数字でファイル名をつけるよう注意しましょう。
VIエディタのモード
vi コマンドで編集作業をするにあたって、VIエディタのモードを理解することは非常に重要です。まず、モードには以下4つのモードがあることを認識しておきましょう。VIエディタを使う際はこの2つのモードを言ったり来たりしながら作業することになります。
- ノーマルモード
- 編集モード
- コマンドラインモード
- ビジュアルモード
ノーマルモード
vi コマンドでファイルを開いた直後のデフォルトのモードです。ドキュメント内の移動とコピペや切り取りなどの単純な編集ができますが、任意の入力作業ができないのが特徴です。
ドキュメント内の移動
gg 又は 0 でカーソルがドキュメントの先頭業に移動します。
G 又は $ でカーソルがドキュメントの最終行に移動します。
gg と G のキーの方が入力しやすいのでは僕はこちらを使用しています。
ドキュメント内のテキストのコピペと削除
コピペや削除には1行と複数行を数字で指定してまとめて実行する方法があります。
yy カーソル位置1行のコピー
dd カーソル位置1行の削除
10yy カーソル位置から10行のコピー
10dd カーソル位置から10行のコピー
p カーソル位置の次の行に1回コピー
P カーソル位置の前の行に1回コピー
5p カーソル位置の次の行に5回コピー
5P カーソル位置の前の行に5回コピー
編集モード
編集モードはノーマルモードとは違い、任意の編集が可能です。以下のキーで編集モードに入れますが、ノーマルモードから編集モードに移る際、それぞれのキーによって最初のカーソル位置が変わります。
i カーソル位置から編集開始
a カーソル位置の次の文字から編集開始
A 行末の最終文字の次の位置から編集開始
o カーソル位置から改行して次の行の先頭から編集開始
O カーソル位置の上に改行して行の先頭から編集開始
エスケープキー(Esc)を押下するとノーマルモードに戻ります。
コマンドラインモード
セミコロン(:)を入力するとコマンドラインモードにはいれます。カーソルがターミナル下部に移動し、VI用コマンドが実行できる状態になります。
コマンドラインモードも編集モード同様にエスケープキー(Esc)押下でノーマルモードに戻れます。
行番号の表示
:set number で行番号が表示されます。
:set nonumber で行番号を非表示に戻すことができます。
ファイル保存コマンド
w(write)コマンドでファイルの保存ができます。新規ファイル作成時にファイル名を指定した場合はそのファイル名でファイルが書き込み保存されます
:w
新規ファイル作成時にファイル名を指定しなかった場合は w コマンドのあとにファイル名を指定するとその名前でファイルが保存されます。
:w {ファイル名}
既存のファイル名を開いた場合、:w コマンドは上書き保存になるので注意しましょう。
VIエディタの終了
VIエディタを終了する場合は q(quit)コマンドを使用します。
:q
w(write)コマンドと合わせて実行することもできます。以下は書き込み保存をして終了というコマンドになります。
:wq
コマンド末尾にエクスクラメーションマーク(!)をつけると強制を意味します。
【強制的に終了】
:q!
【強制的に保存して終了】
:wq!
ファイル内検索
コマンドラインモードにはファイル内の検索の機能もあります。ノーマルモードの状態からスラッシュ(/)キーを押下して下さい。セミコロンのコマンド入力時同様に、カーソルがターミナル最下部に移動します。その状態でキーワードを入力してリターンキーを押下してください。最初にマッチするワードにカーソルが移動します。
/{検索キーワード}
次のワードにカーソルを移動する場合は小文字の「n」 、前のワードに移動する場合は大文字の「N」を押下すれば前後への移動が可能です。
別のワードで検索したい場合は再度スラッシュキーを押下してキーワードを入力してください。
ビジュアルモード
ノーマルモードの状態から v キーを押下するとビジュアルモードになります。ターミナル最下部に「– VISUAL –」と表示されます。ビジュアルモードもエスケープキー押下でノーマルモードに戻ることができます。
単純な編集は編集モードでできますし、複雑な編集はそもそもローカル環境のVSCodeなどのエディタで行うべきなので、ビジュアルモードを使う機会は少ないかもしれません。
まとめ
今日はLinuxのターミナルで使用する代表的なエディタツールのVI(VIM)エディタについて学習しました。AWSのEC2インスタンスではVI=VIMでしたね。まずはファイルの作成方法方法を知り、VIエディタには4つのモードが有ることを学習しました。ノーマルモード、編集モード、コマンドラインモード、ビジュアルモードがありましたね。それぞれのモードに入るキーを練習し、ファイル編集の方法を学びました。これでファイルを作成してから、編集、保存までできるようになりました。Linuxの各種設定フィアルはこのVIエディターを使用して変更していくことになります。しっかり復習しておいてください。