Linux vim エディタを学ぼう

vim(ヴィム)とは  

Linuxでは、色々な設定をテキストファイルに記述して行う事があります。
この為、Linuxを使用しているとテキストファイルを編集する機会が出てきます。
ここで必要になってくるのがテキストディタです。

テキストファイルとは、文字や記号などのテキストで保存されているファイルです。
そして、テキストエディタとは、このテキストファイルを編集する為のソフトです。
Windowsの標準のテキストエディタは「メモ帳」です。

vim(ヴィム)とは、Linuxで標準的に使われて高機能テキストエディタです。
私たちが知っているメモ帳などのテキストエディタとは違い、独特な操作が必要で、
少しとっつきにくさを感じますが、
どのディストリビューションでもほぼ標準でインストールされていますので、
この機会に慣れておきましょう。
ディストリビューションについては、こちらの記事を参照して下さい。

モードについて

Vimには、以下のモードがあり、各モードへ切り替えて操作を行います。

モード説明
インサートモード通常の編集操作を行うモードです。
ノーマルモードカーソルの移動、テキストのコピーやペースト、削除をなどを行うモードです。
コマンドモードファイルの保存、vimの終了など行うモードです。
各モード

モードの切り替えにつて

モード操作方法
インサートモードへ切り替えるi キー または a キーを押下します。
ノーマルモードへ切り替えるEsc キーを押下します。
コマンドモードへ切り替える: キーを押下します。
モード切り替え

vimの起動

コマンド説明
viテキストファイルを編集する。
書式vi [オプション] [ファイル名]
オプション-R 読み取り専用でファイルを開く
実行例1textfile.txt ファイルを開きます。(ファイルが無ければ新規作成します)
$ vi textfile.txt
vi
$ vi textfile.txt を実行

vimの 各種コマンド

インサートモードへの移動(インサートモード)

コマンド説明
iカーソルの前に文字を入力する
aカーソルの後の文字を入力する
I行頭の最初の文字にカーソルを移動し、その直前に文字を入力する
A行末にカーソルを移動し、その直後に文字を入力する
インサートモードへの移動(インサートモード)

カーソルの移動(ノーマルモード)

コマンド説明
h1文字左へ移動する(←)
j1文字したへ移動する (↓)
k1文字上に移動する (↑)
l1文字右へ移動する (→)
ggファイルの先頭行へ移動する
Gファイルに最終行へ移動する
○Gファイルの○行目へ移動する(○は数値)
カーソルの移動(ノーマルモード)

編集操作(ノーマルモード)

コマンド説明
xカーソル位置の文字を削除する(Delete)
X カーソル位置の前の文字を削除する(Backspace)
ddカレント行を削除する
yyカレント行をバッファへコピーする
pカレント行の下へバッファ内容を貼り付ける
P カレント行の上へバッファ内容を貼り付ける
u直前の処理を取り消す(アンドゥ)
. 直前の処理を繰り返す(リドゥ)
編集操作

検索 (ノーマルモード)

コマンド説明
/文字列カーソル位置から後方に向かって指定した文字列を検索する
?文字列 カーソル位置から前方に向かって指定した文字列を検索する
n 次を検索する
N 次を検索する (逆方向)
検索

置換 (コマンドモード)

コマンド説明
:%s/A/B/最初に見つかった文字列Aを文字列Bに置換する
:%s/A/B/gすべての文字列Aを文字列Bに置換する
置換

保存・終了(コマンドモード)

コマンド説明
:q保存せずに終了する(編集した場合は保存するか確認される)
:q!編集中の内容を保存せずに終了する
:wq or ZZ 編集中の内容を保存して終了する
:e!最後に保存した内容に復帰する
保存・終了

その他 (コマンドモード)

コマンド説明
:set number
:set nu
行場号を表示する
:set nonumber
:set nonu
行場号を非表示にする
その他