【VI】 VIM ~ 入門編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2016/04/27/232800

の続き。

今回は、VIM (= Vi IMproved) について扱う

目次

【0】VIMのモード
【1】ノーマルモード
 1)移動系
 2)削除系の編集
 3)コピペ系
 4)元に戻す(Undo)系
【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

【1】ノーマルモード

1)移動系

カーソル移動

* カーソルを移動するには、h(左), j(下), k(上), l(右)を押す
             ^
             k              ヒント:  h キーは左方向に移動します。
       < h       l >                 l キーは右方向に移動します。
             j                       j キーは下矢印キーのようなキーです。
             v

その他

入力コマンド 意味 備考
:数字 行番号へ移動
0 行先頭へ移動
$ 行末へ移動
{ 段落ごとの上移動
} 段落ごとの下移動
[[ セクションごとの上移動
]] セクションごとの下移動
gg 先頭へ移動
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   数値   モーション
# d2w なら、2単語を一気に削除

3)コピペ系

# 入力コマンド 意味 備考
1 yy 1行コピー y:yank (Linuxではコピーのことをヤンク(引っ張る)という)
2 p 下に貼り付け p:paste(貼り付け)
3 P 上に貼り付け P:paste(貼り付け)
4 【数字】yy 【数字】行コピー 2yy: 2行コピー
5 . Repeat -

4)元に戻す(Undo)系

入力コマンド 意味 備考
u 元に戻す u:undo
CTRL + r undoのやり直し(Undo redo) r:redo

【2】コマンドモード

1)表示系

入力コマンド 意味 備考
:set number 行表示

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/2023/08/04/225503
VIM ~ 学ぶ際のサイト ~
https://dk521123.hatenablog.com/entry/2023/06/09/000000
VI エディタ
https://dk521123.hatenablog.com/entry/2016/04/27/232800
NeoVIM ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/12/30/221338