高機能エディタ: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はグローバル)
最終更新: