当記事では、vi及びvimの使い方と基本コマンドについて紹介します。
目次
Linuxのバージョン
Alma Linux release 8.9
vi/vimとは
viは、UNIX環境で広く使用されているテキスト編集プログラムの一種で、“Visual Editor”の略称です。
カーソルの移動やviの終了などの操作を行うことができる「コマンドモード」と
文字の入力などを行う「インサートモード」の2つのモードがあります。
Linuxにはあらかじめインストールされているため、標準的なエディタとなっています。
vimは、viから派生した高機能なエディタでカスタマイズ性が高いため、
自分好みの環境に調整することができます。
vimのインストール
viはあらかじめインストールされていますが、vimは別途インストールが必要な場合があります。
vimがインストールされているかは以下のコマンドで確認することができます。
$ vim --version
インストールされていないようでしたら、以下のコマンドを実行してインストールします。
# dnf -y install vim-enhanced
vi/vimの基本コマンド
vi/vimの基本コマンドを把握することで、テキスト編集をスムーズに行えます。
以下はその基本コマンドです。
vi/vimの起動
viもvimも大差はありません。
vi/vimコマンドの後にファイル名を指定するとそのファイルを編集することができます。
存在しないファイル名を指定した場合は、ファイルが新しく作成されます。
(viの場合)
$ vi <ファイル名>
(vimの場合)
$ vim <ファイル名>
モードの切替
vi/vimを起動直後は、「コマンドモード」になっています。
| i | コマンドモードからインサートモードに切り替え | 
| Esc | インサートモードからコマンドモードに切り替え | 
保存・終了
これ以降は全て「コマンドモード」で実行します。
※一部例外あり
| a | カーソル位置の直後からインサートモードに切り替え | 
| o | 新しい行を現在の行の下に挿入し、インサートモードに切り替え | 
| O | 新しい行を現在の行の上に挿入し、インサートモードに切り替え | 
| :q! | ファイルを保存せずに強制終了(変更があった場合、無視して強制終了) | 
| :q | ファイルの編集を終了(変更があった場合、警告が出る) | 
| :w | 上書き保存 | 
| :w <ファイル名> | 名前を付けて上書き保存 | 
| :w! | 読み込み専用ファイルに強制的に上書き保存 | 
| :wq | 上書き保存して終了 | 
| :wq! | 読み込み専用ファイルに強制的に上書き保存をして終了 | 
移動
| h | 左に1文字移動 | 
| j | 下に1行移動 | 
| k | 上に1行移動 | 
| l | 右に1文字移動 | 
| ↑,→,↓,← | インサートモード,コマンドモードでのカーソル移動 | 
| Ctrl+F | 1ページ分下にスクロール | 
| Ctrl+B | 1ページ分上にスクロール | 
| Ctrl+D | 半ページ分下にスクロール | 
| Ctrl+U | 半ページ分上にスクロール | 
| H | 画面の一番上に移動 | 
| M | 画面の中央に移動 | 
| L | 画面の一番下に移動 | 
| gg | ファイルの先頭に移動 | 
| G | ファイルの末尾に移動 | 
| nG | n行目に移動(nは行数) | 
| w | 次の単語の先頭に移動 | 
| e | 次の単語の末尾に移動 | 
| b | 前の単語の先頭に移動 | 
| 0 | 行の先頭に移動 | 
| $ | 行の末尾に移動 | 
コピー・ペーストと文字削除
| p | カーソルの次の行にテキストを貼り付ける | 
| P | カーソルの前の行にテキストを貼り付ける | 
| x | カーソルがある位置の文字を削除 | 
| d$ | カーソル位置から行末までをカット | 
| dw | カーソル位置から次の単語の先頭までをカット | 
| db | カーソル位置から前の単語の先頭までをカット | 
| dd | 現在の行をカット | 
| d$またはD | カーソル位置から行末までをカット | 
| X | カーソルの前の文字を削除(バックスペース) | 
| u | 元に戻す | 
| ndd | 現在の行からn行分カット | 
※dをyに置き換えるとコピーできる
(例)yy:現在の行をコピー
検索・置換
| /(検索語) | 前方に検索 | 
| ?(検索語) | 後方に検索 | 
| n | 次の検索結果に進む | 
| N | 前の検索結果に進む | 
| :s/(検索語)/(置換語)/ | 現在の行で最初にマッチした検索語を置換 | 
| :%s/(検索語)/(置換語)/g | ファイル全体で検索語を一括置換 | 
| :%s/(検索語)/(置換語)/gc | ファイル全体で検索語を一括置換(置換前に確認を求める) | 
その他
| zfnj | 現在の行からn行下の行までテキストを折りたたむ | 
| zd | 現在の折り畳みを解除 | 
| :split | 水平方向にウィンドウを分割 | 
| :vsplot | 垂直方向にウィンドウを分割 | 
| Ctrl+w+↑ | 上のウィンドウに移動 | 
| Ctrl+w+↓ | 下のウィンドウに移動 | 
| Ctrl+w+→ | 右のウィンドウに移動 | 
| Ctrl+w+← | 左のウィンドウに移動 | 
| :nohlsearch | 検索結果のハイライトを解除 | 
| :set number | 行番号を表示 | 
まとめ
初めはvi/vimの使いにくさを感じるかもしれませんが、慣れると編集作業の効率が格段に向上します。
今回ご紹介したもの以外にも、まだたくさんのコマンドがありますが、少しでもお役に立てていれば幸いです。
ご覧いただきありがとうございました。
参考サイト
Vimの基本的なコマンド-Zenn
https://zenn.dev/masatotezuka/articles/vim_command_220225
Vimについて#Linux-Qiita
https://qiita.com/taxinumber1729/items/b8b5094ea2b5ee4bdf68
viの基本操作
https://www.gi.ce.t.kyoto-u.ac.jp/user/susaki/command/vi.html
記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。


















