iriya-ufo's blog

Curiosity was simply the first derivative of knowledge.

Vim 小技集

自分のための覚書

編集

:%s/:\(\w\+\) =>/\1:/g  # hash の書き方を置換 #正規表現
Ctrl+v jjjj I           # 4行コメントアウト(,#)
Ctrl+v jjjj d           # 4行コメントイン(,#)
Ctrl+v jjjj c aaaa      # 4行置換
viwy                    # カーソル位置の単語を yank
viwp                    # カーソル位置の単語を yank している内容で上書き
cw                      # カーソル位置から単語の最後までを書き換える
viwu                    # カーソル位置の単語を undercase
viwU                    # カーソル位置の単語を UPPERCASE
viw~                    # カーソル位置の単語を undercase <-> UPPERCASE 入れ替え
viw!nkf -Z4             # カーソル位置の行を半角カタカナ

カーソル移動

0                       # 行の先頭へ
^                       # 行の空白以外の先頭へ
$                       # 行の末尾へ
w                       # 次の単語の先頭へ
f*                      # 次の*へ           (例 df"->"まで削除)
t*                      # 次の*の前へ       (例 dt"->"の前まで削除)
viw                     # 現在のカーソル位置の単語を選択
vi"                     # 現在のカーソル位置の"の中を選択
va"                     # 現在のカーソル位置の"の外を選択

モード

C-[                     # 挿入モードを抜ける
ESC                     # 挿入モードを抜ける

ウィンドウ

:vs                     # 垂直分割
:sp                     # 水平分割
Ctrl+w w                # 次のウィンドウへ
Ctrl+w [hjkl左下上右]    # ウィンドウの移動
Ctrl+w -                # 高さを小さく  (例 Ctrl+w 10- -> ウィンドウの高さを 10 狭める)
Ctrl+w +                # 高さを大きく
Ctrl+w <                # 幅を小さく
Ctrl+w >                # 幅を大きく
Ctrl+w =                # 自動調整
Ctrl+w r                # 左右・上下のウィンドウを入れ替え
:res 100                # 現在のウィンドウの高さを 100 にする
:vertical res 30        # 現在のウィンドウの横幅を 30 にする

特殊処理

qa                      # マクロ記録開始
q                       # マクロ記録終了 (@a で使用可能)

コマンドラインの履歴

q: または : Ctrl+f       # コマンドラインの履歴
q/                      # 検索
Ctrl+c                  # 履歴をコマンドラインに送る(編集して使えるようになる)

改行文字の変更

:%s/
/
/g                      # /Ctrl+v Ctrl+m/Ctrl+v Enter/

ファイル比較

:vertical diffsplit     # 差分を取りたいファイル
:do (diff obtain)       # もう一方のファイルから差分を取り込む
:dp (diff put)          # もう一方のファイルに差分を取り込ませる