この記事はワクワクしましたか?
  • 超ワクワク! (26)
  • ワクワク! (9)
Ex:338

【厳選まとめ】viエディタ(vim)を使いこなすために覚えておきたいviコマンド一覧

こんにちは。いっしーです。

Linuxを扱う上で避けては通れないviエディタ。
コマンドがめちゃくちゃ多くて覚えるのが大変ですよねー。
今回は、viエディタを使いこなすために覚えておきたいviコマンドについて、まとめてみたいと思います。

viエディタ(vim)とは

viエディタは、LinuxやUnixに標準で実装されているテキストエディタです。
Windowsでいうメモ帳みたいなものでしょうか。
viエディタの特長としては、「コマンドモード」「入力モード」の2つのモードを切り替えつつ操作を行うというのがあります。
慣れてしまえばどうってことないのですが、初心者には少しとっつきにくいポイントだと思います。

[補足]
現在ではviから発展したvim(Vi IMproved)が使われており、Linuxではエイリアスによって、viコマンドでvimが起動するようになっています。

基本の書式

vi [ファイル名]

ファイル名を指定してテキストファイルを開きます。
ファイル名が空もしくは、指定したファイル名のファイルが存在しない場合は空の新規ファイルを開きます。
また、オプション「-R」を付与することで、読み取り専用モードでファイルを開きます。

入力モードへ切り替え

入力モードとは、文字通りファイルに文字を書き込むモードです。
viエディタ起動時はコマンドモードになっています。
下記のコマンドを押下して入力モードに切り替えます。

コマンド 説明
i カーソルの前に文字を入力
a カーソルの後に文字を入力
I (大文字アイ) 行頭にカーソルを移動し、カーソルの前に文字を入力
A 行末にカーソルを移動し、カーソルの後に文字を入力
o 現在の行の下に空白行を挿入し、その行で文字を入力
O 現在の行の上に空白行を挿入し、その行で文字を入力

カーソル操作

入力モードでEscキーを押下してコマンドモードに切り替えます。
コマンドモードでは、カーソルの移動から保存、終了、文字列検索など各種操作を行います。

コマンド 説明
h 一文字左へ移動 ←キーと同じ
l (小文字エル) 一文字右へ移動 →キーと同じ
k 一文字上へ移動 ↑キーと同じ
j 一文字下へ移動 ↓キーと同じ
0 行の先頭へ移動
$ 行の末尾へ移動
H 画面の一番上の行頭へ移動
L 画面の一番下の行頭へ移動
gg ファイルの先頭行へ移動
G ファイルの最終行へ移動
nG ファイルのn行目に移動
:n ファイルのn行目に移動

viの保存、終了、シェルコマンドの実行

入力モードでEscキーを押下してコマンドモードに切り替えます。
下記カーソル操作コマンドはコマンドモードで行います。

コマンド 説明
:q (ファイルを編集しなかった場合)viを終了
:q! ファイルの編集を破棄して終了
:wq ファイルの編集を保存して終了
ZZ ファイルの編集を保存して終了 :wqと同じ
:w ファイルの編集を保存
:e! 最後に保存した内容に復帰
:r ファイル名 ファイルの内容を現在の行以降に読み込む
:! コマンド viを終了せずにシェルコマンドを実行する
:r! コマンド シェルコマンドの実行結果を挿入する

viの編集コマンド

viコマンドはコマンドの前に数値を指定することで、何回実行するか指定することができます。
例えば、「5x」と入力すれば5文字削除、「10dd」と入力すれば10行削除.
上で紹介したカーソル操作でも、「3h」と入力することで3文字左へ移動することができます。
また、削除コマンド「x、X、dd、dw」は削除と同時にバッファーにコピーを行います。

コマンド 説明
x カーソル位置の文字を削除 Deleteキーと同じ
X カーソル位置の手前の文字を削除 BackSpaceキーと同じ
dd 現在の行を削除
dw カーソル位置から次の単語まで削除
yy 現在の行をバッファにコピー
p 現在の行の下にバッファの内容を貼り付け
P 現在の行の上にバッファの内容を貼り付け
r カーソル位置の1文字を置換
u 1つ前の動作を取り消す(undoの略)

viの検索コマンド

viの検索では正規表現によるパターン検索にも対応しています。

コマンド 説明
/パターン カーソル位置から後方に向かって指定パターンを検索
?パターン カーソル位置から前方に向かって指定パターンを検索
n 次へ
N 次へ(逆方向)
:noh 検索のハイライト表示を解除
:%s/A/B/ 最初に見つかった文字列Aを文字列Bに置換
:%s/A/B/g 全ての文字列Aを文字列Bに置換

viの設定変更

:setで行った変更は、viを終了させると消えてしまいます。
設定を常に有効にするには、ホームディレクトリにある設定ファイル「.vimrc」に設定を記述します。
詳細については、また別の記事でご紹介したいと思います。

コマンド 説明
:set nu または :set number 行番号を表示
:set nonu または :set nonumber 行番号を非表示
:set ts=タブ幅 タブ幅を数値で指定する (例 :set ts=4 タブ幅=スペース4つ分)

viのチュートリアル

vimtutorコマンドでviの操作を学べるチュートリアルを始めることができます。
実際に手を動かしたほうがよく覚えられるのでおすすめです。

viエディタのチュートリアル

[補足]
もし、vimtutorコマンドが入ってない場合、vim-enhancedパッケージをインストールします。

▼ジョイントメディアのホスティングサービス『J CLOUD』のWEBサイトはこちら▼
ホスティングサービス【J CLOUD】

大阪府堺市にあるジョイントメディアならホームページ制作を格安で依頼出来ます