■ はじめに
https://dk521123.hatenablog.com/entry/2016/04/27/232800
の続き。
今回は、VIM (= Vi IMproved) について扱う
目次
【0】VIMのモード
【1】ノーマルモード
1)移動系
2)削除系の編集
3)コピペ系
4)元に戻す(Undo)系
5)検索系
【2】コマンドモード
1)表示系
2)ファイル保存系
3)ウィンドウ系
4)その他
【0】VIMのモード
| # |
Mode |
Explanation |
Memo |
| 1 |
ノーマルモード |
「ESC」キーで移行される |
|
| 2 |
入力モード(インサートモード) |
「i」キーで移行される |
i: Insert |
| 3 |
コマンドモード |
「:」キーで移行される |
保存、終了、文字列置換など |
| 4 |
ビジュアルモード |
「v」キーで移行される |
範囲選択など |
* 以下のサイトの図が分かりやすい
https://knowledge.sakura.ad.jp/21687/#i
+-------------+
| Insert mode |
+-------------+
: i ↑ ↓ Esc v
+-------------------+ -> +-------------+ -> +-------------+
| Commend Line mode | | Normal mode | | Visual mode |
+-------------------+ <- +-------------+ <- +-------------+
Esc Esc
| 入力コマンド |
意味 |
備考 |
| i |
書き込みモード |
|
| [ESC] + :wq |
上書き |
w : write / q : quit(辞める) |
1)移動系
* 詳細は、以下の関連記事を参照
VIM ~ カーソル移動 ~
https://dk521123.hatenablog.com/entry/2016/04/27/232800
カーソル移動
| 入力コマンド |
意味 |
| h |
左 |
| j |
下 |
| k |
上 |
| l |
右 |
その他
| 入力コマンド |
意味 |
備考 |
| :数字 |
行番号へ移動 |
「:0」なら先頭行 |
| 0 |
選択行の行先頭へ移動 |
★覚える |
| $ |
選択行の行末へ移動 |
★覚える |
| { |
段落ごとの上移動 |
|
| } |
段落ごとの下移動 |
|
| [[ |
セクションごとの上移動 |
|
| ]] |
セクションごとの下移動 |
|
| gg |
ファイルの先頭へ移動 |
★覚える。「:1」でも可能 |
| G |
ファイルの終端へ移動 |
★覚える。「:$」でも可能 |
| CTRL + o |
移動前に戻る |
|
| CTRL + f |
画面単位で下移動 |
f:foward(前方へ) |
| CTRL + b |
画面単位の上移動 |
b:back(戻る) |
| w |
単語単位の次に移動(カーソル位置は単語の先頭) |
数字w(2w) |
| e |
単語単位の次に移動(カーソル位置は保持) |
数字e(2e) |
| b |
単語単位の戻って移動 |
|
2)削除系の編集
| 入力コマンド |
意味 |
備考 |
| x |
1文字削除 |
|
| dd |
1行削除 |
|
| dw |
1単語削除 |
|
| 【数字】dd |
【数字】行削除 |
2dd (2行) |
| d$ |
カーソルから行の最後までを削除 |
|
| + |
【数字】行削除(カット) |
|
補足
d 数値 モーション
3)コピペ系
| # |
入力コマンド |
意味 |
備考 |
| 1 |
yy |
1行コピー |
y:yank (Linuxではコピーのことをヤンク(引っ張る)という) |
| 2 |
【数字】yy |
【数字】行コピー |
2yy: 2行コピー |
| 3 |
p |
下に貼り付け |
p:paste(貼り付け) |
| 4 |
P |
上に貼り付け |
P:paste(貼り付け) |
| 5 |
. |
Repeat |
- |
4)元に戻す(Undo)系
| 入力コマンド |
意味 |
備考 |
| u |
元に戻す |
u:undo |
| CTRL + r |
undoのやり直し(Undo redo) |
r:redo |
5)検索系
| 入力コマンド |
意味 |
備考 |
| /【検索文字】 |
前方検索 |
|
| /?【検索文字】 |
後方検索 |
|
| n |
次の候補 |
|
| N |
前の候補 |
|
【2】コマンドモード
1)表示系
| 入力コマンド |
意味 |
備考 |
| :set number |
行数表示 |
コマンドモード時で行う |
| :set nonumber |
行数非表示 |
コマンドモード時で行う |
2)ファイル保存系
| 入力コマンド |
意味 |
備考 |
| :w |
上書き |
w : write |
| :w 【ファイル名】 |
名前を付けて保存 |
w : write |
| :q |
終了 |
q : quit(辞める) |
| :q! |
変更点を無視して終了 |
q : quit(辞める) |
| :e 【ファイル名】 |
ファイルを開く |
|
3)ウィンドウ系
| 入力コマンド |
意味 |
備考 |
| :sp |
画面分割(縦) |
sp : split |
| :vs |
画面分割(横) |
vs : vertical split |
| :close |
画面を閉じる |
|
| CTRL + ww |
分割した画面に移動 |
|
4)その他
| 入力コマンド |
意味 |
備考 |
| :![Linux Command] |
コマンド実行 |
:!python3 test.py <= Python実行 |
| :!‼ |
前のコマンド実行 |
|
参考文献
https://qiita.com/pe-ta/items/0510bee10bcfd88afeee
動画
http://dotinstall.com/lessons/basic_vim
関連記事
VIM ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/09/01/000000
VIM ~ コマンドモード ~
https://dk521123.hatenablog.com/entry/2024/10/21/001134
VIM ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2023/08/04/225503
VIM ~ 置換 / 変換 ~
https://dk521123.hatenablog.com/entry/2025/03/20/000000
VIM ~ カーソル移動 ~
https://dk521123.hatenablog.com/entry/2016/04/27/232800
VIM ~ 学ぶ際のサイト ~
https://dk521123.hatenablog.com/entry/2023/06/09/000000
NeoVIM ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/12/30/221338