vim操作

高機能エディタ:vim の機能逆引き一覧です。ほとんど自分用のメモですが、公開してみます。

誤りやツッコミがありましたらコメントをお願いします。

[コマンドモードへ移る]

[Esc]

[ページスクロール]

※下スクロールは左手系・上スクロールは右手系gg 先頭

C-b 1ページ戻る C-u 半ページ戻る

C-y 1行戻る 次の単語の 次の単語のC-e 1行進む

C-d 半ページ進むC-f 1ページ進む

G 最後尾nG n行目に移動

ngg n行目に移動:数字 指定行へジャンプ

[カーソルの移動]

k 上

j 下h 左

l 右

[行内のカーソル移動]

0 行頭へ^ 先頭文字へ

b 前の単語へw 次の単語の先頭へ

e 次の単語の末尾へ$ 行末へ

[画面内のカーソルの移動]

H 画面の一番上へ-High

M 画面の中段へ-Middle L 画面の一番下へ-Low

C-l 再描画

[カーソル位置における画面の移動]

zz カーソル位置が中心になるように画面をスクロール

[入力モードへ移る]

O 上行をOpen I 行頭から入力

i カーソルの前に入力a カーソルの後に入力

A 行末から入力 o 下行をopen

[編集]

X/x バックスペース/デリート

P/p カーソルの前にペースト/カーソルの後にペースト J 下の行と連結(同行の改行記号を削除)

gJ 下の行と、空白文字を除いて連結 C-a カーソルの数値をインクリメント(8,16進数対応)

C-x カーソルの数値をデクリメント(8,16進数対応) ga カーソルの文字の文字コード(アスキーコード)を返す(get ascii)

[プログラム内での移動]

% 対応する括弧"{ }","[ ]","( )"、コメント("/* */")にジャンプ

( 今の文の先頭へジャンプ ) 次の文の先頭へジャンプ

{ 今の段落の先頭へジャンプ } 次の段落の先頭へジャンプ

[[ 今のセクションの先頭へジャンプ ]] 次のセクションの先頭へジャンプ

gd ローカル宣言にジャンプ gD グローバル宣言にジャンプ

gf カーソル下の単語をファイル名として開く

[矩形選択]

C-v 矩形選択。その後、dやyで編集し、あるいはpで貼り付け。 v 行をまたぐ文字単位の領域選択

V 行単位の領域選択(ggVG :すべて選択) ~矩形選択応用~

> 現在の行を、インデント

= インデントの体裁を整える ~ 大文字小文字を入れ換え

u 全て小文字へ変換 U 全て大文字へ変換

[編集中のファイル情報を表示]

C-g ファイル名、変更の有無

1C-g ファイル名(フルパス) 2C-g ファイル名(フルパス)他

[ファイル]

:q/:q! 保存せず終了/保存せず強制終了

ZZ or :wq 保存して終了 :w 上書き保存

:w ファイル名 ファイル名で保存 :e ファイル名 ファイルを開く

:e! 最後に保存した内容に戻す :r ファイル名 カレント行にファイル内容を読み込む

:n 複数開いている場合は次のファイル :h ヘルプ

[書き込み権限]

:set ro 読み取り専用にする

:set noro 書き込み可能にする

[バッファ]

dd 行削除(4dd 4行削除) yy 行ヤンク(vi:ヤンク=コピー) d$ or D カーソルから行末までを削除 y$ or Y カーソルから行末までをヤンク

d^ or d0 カーソルから行頭までを削除 y^ or y0 カーソルから行頭までをヤンク dw カーソルから次の単語までを削除 yw カーソル-次単語までをヤンク

[上書き]

r 1文字を1文字で上書き

R 1文字を[Esc]が押されるまで上書き s 1文字を任意の文字列で上書き

S 1行を、任意の文字列で上書き cw 単語の末尾まで置き換え

c$ 行末まで置き換え cc 1行全体を置き換え = S

[履歴]

u アンドゥ

U 行に対する変更のすべてを取り消し C-r アンドゥのアンドゥ(リドゥ)

. 前回の繰り返し

[行指定コマンド]

:1,5d 1~5行目を削除 :.,$d カレント行(.)から行末($)までを削除

:%d 全行削除 (%は編集バッファ内の全行を意味する)

[検索]

:/パターン カーソルから末尾に向かって検索

:?パターン カーソルから先頭に向かって検索 n/N 次を順方向に検索/次を逆方向に検索

:noh ハイライトを消す(:nohlsearch) * カーソル上の単語を検索して回る

# *の逆順検索 :set ic 検索時に大文字/小文字を区別しない。IgnoreCase (:set noic)

:/パターン\c 検索時に大文字/小文字を区別しない(一時的な処置) :/パターン\C 検索時に大文字/小文字を区別する(一時的な処置)

:set smartcase 検索文字列に大文字が含まれている場合のみ、大文字と小文字を区別する。 :set list タブ文字、行末など不可視文字を表示する(:nolist)

[一括検索](grep:正規表現OK)

:g/XXX ファイル中最後のXXXを見つけてそこに移動

:g/XXX/d XXXを含む全ての行を削除する :g/XXX/p XXXを含む全ての行を表示する

:g!/XXX/nu XXXを含まない全ての行を、行番号を含めて表示

[置換](sed:正規表現OK)

:s/XXX/OOO/ 現在の行の、最初のXXXをOOOに置換 :s/XXX/OOO/g 現在の行の、全てのXXXをOOOに置換(gはグローバル)