Vim歴2年の自分の成長止まりを憂う

vim使い始めて2年くらい経つけど、結構クセついてきてしまいたまに焦りがきます。

例えば、`diw` -> `i` とやり慣れてる人が、 `ciw`に移行するのって意識して努力しないと変わらない。

以下は、僕自身が習得しなければならない、より便利な機能をリスト化してみました。結構前にまとめたので、もう改善済みのも結構ある。

とりあえず、最近vim使えてきたな〜って人は、`t/f`,`T/F`の高速移動やText Objectを覚えると、さらに1.1倍くらい楽しくなります。




Keys
--------------------
key           | action
------------- | --------------
Ctrl + j,k,h,l| インサートモード中に移動
ca"           | "ごと"内を削除
ge            | 前の単語の末尾に移動
S             | 現在の行を消してインサートモード
s             | カーソル下の一文字を消してインサートモード
C             | カーソルより右を消してインサートモード
ZZ            | :wqと同じ
dG            | 現在行以下をすべて削除
Ctrl + p      | インサートモード時に前方単語補完
Ctrl + n      | インサートモード時に後方単語補完
:r! + CMD     | コマンド実行結果を貼り付け
gJ            | スペースを含まず行結合
5J            | 現在行以下5行を一括行結合
]m            | 次のメソッドの始めに移動
]M            | 次のメソッドの終わりに移動
[m            | 前のメソッドの始めに移動
]M            | 前のメソッドの終わりに移動
{             | 前の空行へ移動
}             | 次の空行へ移動
%             | 対応する括弧や予約語に移動
*             | カーソル下の単語を後方検索
\#            | カーソル下の単語を前方検索
g*            | カーソル下の単語を後方部分検索
g#            | カーソル下の単語を前方部分検索
+             | 下の行頭に移動
\-            | 上の行頭に移動
g;            | 直前の変更箇所に戻る
g,            | 直前の変更箇所に進む
:noh          | 検索結果のハイライトを解除
W,B,E,gE      | 
q + 文字       | レコード開始(qで終了)
@ + 文字       | レコード再生
q:            | コマンド履歴を表示
q/, q?        | 検索履歴を表示
gg=G          | 全行インデント(V+G+=と動きは同じ)
R             | 上書きモード
Ctrl + [      | コマンドモードに戻る(=esc)
Ctrl + z      | 一時停止(`vim`で戻る)
yy5p          | 行をコピーし、下に5行分ペースト
gv            | 直前の選択を再選択
ma            | マークaをつける
\`a           | マークaに移動
'a            | マークaのある行の先頭に移動
y`a           | 現在のカーソル位置からマークaまでをコピー
v`a           | 現在のカーソル位置からマークaまでを選択
:marks        | マーク一覧を表示
"ayy          | レジスタaにコピー(aをAにすると現在保持しているテキストの末尾に追加される)
"ap           | レジスタaをペースト
:reg          | レジスタ一覧を表示
:reg a b      | レジスタa,bを表示
@:            | 直前に実行したコマンドを実行
:g/^$/d       | 空行削除
u             | 小文字に変換
U             | 大文字に変換
~             | 小文字は大文字に、大文字は小文字に変換
gQ            | Exモード(連続でコマンドを使用できる)
:e            | ファイルを開く
:r            | ファイルを読み込み現在編集中のファイルにペースト
gt            | 次のタブに切替
gT            | 前のタブに切替

Text Object
--------------------
`d`や`c`と組み合わせて使用する。

key           | action
------------- | --------------
iw            | 単語(以降iの部分はaでも代用可能)
iW            | 単語(空白含む)
is            | 文
it            | タグ
i]            | 括弧("",'',(),<>,{})なども対応可能)



以上。
他におすすめあったら是非教えて欲しいです！


以下は、おまけ。
vimの標準ファイルツリー。


netrw.vim
====================
Vimの便利なファイルブラウザ。

Keys
--------------------
key           | action
------------- | --------------
:h netrw      | 使い方をみる
:Explore(Ex)[!]  [dir] | カレントファイルのディレクトリを開く。`:e .`でも同じ。
:Hexplore[!] [dir] | 水平分割 & Explore
:Nexplore[!] [dir] | 垂直分割 & Explore
:Pexplore[!] [dir] | 垂直分割 & Explore
:Rexplore          | Explorer に戻る
:Sexplore[!] [dir] | ウィンドウ分割 & Explore
:Texplore[!] [dir] | タブ & Explore
:Vexplore[!] [dir] | 垂直分割 & Explore
i  | 表示方法を切り替える (thin, long, wide, tree)
s  | ソート方法を変える: name, time, file size
r  | ソート順を逆にする
a  | 隠しファイルの表示を切り替える
gh | ドットファイルの表示/非表示を切り替える
p  | ファイルをプレビューする
qf | ファイル情報を表示する
-  | 一つ上のディレクトリに移動する
u  | 最近訪れたディレクトリに移動する（undo的な）
U  | 次に訪れたディレクトリに移動する（redo的な）
t  | カーソル位置のファイル/ディレクトリを新しいタブで開く
o  | カーソル位置のファイル/ディレクトリを新しいウィンドウで開く。水平分割。
v  | カーソル位置のファイル/ディレクトリを新しいウィンドウで開く。垂直分割。
gt | 次のタブに切替
gT | 前のタブに切替
P  | 直前に使用していたウィンドウで開く
d  | ディレクトリを作成する
D  | ファイル/ディレクトリ(複数可)を削除する(マークしたファイルがある場合には、マークしたファイルを削除)
R  | ファイル/ディレクトリ(複数可)の名前を変える
mf | ファイルをマーク/アンマークする
md | マークしたファイルの差分を表示する (3ファイルまで)
mz | マークしたファイルを圧縮/伸長する
mr | シェル形式正規表現 (regexp) でファイルをマークする
mt | 表示中のディレクトリをターゲットディレクトリにする
mc | マークしたファイルをターゲットディレクトリにコピー
mm | マークしたファイルをターゲットディレクトリに移動
mv | マークしたファイルに対して任意のVimコマンドを実行
mx | マークしたファイルに対して任意のシェルコマンドを実行
mX | マークしたファイルに対して任意のシェルコマンドを一括実行
mu | すべてのマークを解除する
mb | カレントディレクトリをブックマークする
qb | ブックマークと履歴の一覧を表示する
gb | 前のブックマークされたディレクトリに移動