Windows/Linux

vi/vimの使い方と基本コマンドについて

当記事では、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

若手エンジニア志望者を募集!支度金あり

LogStare Collector 無償版

記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。

当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。

FortiGate トラフィックログの内容について前のページ

[FortiGate]Webフィルタの設定方法と確認方法について次のページ

ピックアップ記事

  1. IoT機器「Raspberry pi」とLogStare Collectorで温…
  2. 自社製品をAMIにしてAWSマーケットプレイスへ出品
  3. Zabbixヒストリデータのレポート生成について
  4. ログフォワーダー「okurun.jar」について

関連記事

  1. Windows/Linux

    LSCサーバのWindowsファイアウォールにてWMI、Syslog、SNMP、PING通信を許可す…

    当記事では、LSCサーバのWindowsファイアウォールにてWMI、S…

  2. Windows/Linux

    Linux/Windows pingコマンドの使い方とオプションについて

    当記事では、Linux/Windowsのpingコマンドの使い方とオプ…

  3. Windows/Linux

    Windowsイベントログの監視について

    当記事では、LogStare Collector(以下、LSCと記載)…

  4. Windows/Linux

    Linuxにて特定のインバウンド通信を許可するための設定例

    当記事では、Linuxにて特定のインバウンド通信を許可するための設定例…

  5. Windows/Linux

    Linux Server環境(CentOS,UbuntuServer)にSNMP(v1, v2c) …

    当記事では、Linux Server環境にSNMPの設定を投入する方法…

若手エンジニア志望者を募集!
LogStare Collector 無償版
クラウド活用の「困った」「焦った」事例
月額200円でM356の監査ログの運用レベルUP LogStare M365
AWSのログ分析・モニタリングに 次世代のマネージド・セキュリティ・プラットフォーム LogStare

  1. AWS/Azure

    AWSマーケットプレイス上から無償版のLogStare Collectorを試す…
  2. NW機器

    PaloAltoのIPsec IKEv1 Phase1におけるトラブルシューティ…
  3. NW機器

    Nutanix Prism ElementにおけるSNMP監視/REST API…
  4. SNMPを触ってみた

    ログ分析・監視テクニック

    SNMPとは?新入社員が生まれてはじめて触ってみた!
  5. ログ分析・監視テクニック

    nProbeであらゆる通信をログに記録し可視化する
PAGE TOP