ページ

2012年11月15日木曜日

Vim チートシート



・以下で公開している.vimrcの設定で利用可能なコマンドを纏めています。
github
https://github.com/isystk/dotfiles




【カーソル移動】
上下左右 → k、j、h、l
左右(区切り文字単位) → b、w
ファイルの先頭 → gg
ファイルの末尾 → G
行の先頭 → 0
文字の先頭 → ^
行の末尾 → $
1ページ前 → <C-B>
1ページ後 → <C-F>
半ページ前 → <C-U>
半ページ後 → <C-D>
カーソル行の指定文字位置に移動 → f(文字)
対応する括弧に移動 → %
表示画面の先頭行 → <S-H>
表示画面の最終行 → <S-L>
カーソル位置を画面中央に → zz



【編集】
カーソル位置から入力 → i
カーソルの次から入力 → a
カーソル位置を消して入力 → s
カーソル位置の1単語を消して入力 →cw
カーソル位置の1単語を削除する → dw
カーソル行を消して入力 →cc
次の行から入力 → o
直前の編集を繰り返す → .
カーソル位置の文字を置換する → r
カーソル以降の文字を置換する → R
カーソル位置の文字を小文字にする → ~
入力モードから抜ける → <C-C>
カーソル位置を1文字削除 → x
カーソル行を切り取る → dd
カーソル位置から後ろを削除 → <S-D>
アンドゥ → u
リドゥ → <C-R>
カーソル位置の数字をインクリメントする → <C-A>
カーソル位置の数字をデクリメントする → <C-X>
カーソル位置の数字に25加算する → 25<C-A>
行の先頭に連番をふる → %!nl -w1 -s.\
一括でコメントアウトする(tomtom/tcomment_vim) → 選択状態で <C-_>
3行目から6行目までをコピー → :3,6y
1行目から3行目を5行目に移動 → :1,3m3
2から3行目の左に10文字スペースを開ける → :2,3left 10
全行を120文字幅で中央寄せにする → :%center 120
選択部分を2タブインデントする → 選択状態で 2>
1行コピー → yy
カーソル位置にペースト → P
カーソル後ろにペースト → p
複数行を選択してコピーする → 範囲状態で y
複数行を選択して切り取る → d
最新のヤンクをペーストする → "0P
選択範囲をオートインデントする → 選択状態で =
ZenCodingを利用する(ZenCoding.vim) → <C-Y>
ヤンク履歴からペーストする → ペースト後に <C-P>
ヤンク履歴からペーストする(後方検索) → ペースト後に <C-N>
Javascriptのコメントを生成する(tanabe/WriteJSDocComment.vim) → <C-C>
5行目から10行目までをソートする → :5,10sort
ファイル全体を降順でソートする → :sort!
重複している行を取り除く → :sort u
データをカンマで区切って3番目の数値でソートする → :%!sort -t, -k 3,3n




【ファイル】
終了 → :q
保存せずに強制終了 → :q!
別名で保存して終了 → :w (ファイル名)
保存して終了 → ZZ
カーソル位置にある文字をファイル名として開く → gf
権限のないファイルを編集してしまった時に保存する → :w !sudo tee %



【検索・置換】
文字を検索する → /(検索文字)<CR>
文字を逆方向に検索する → ?(検索文字)<CR>
カーソル位置にある単語を検索 → *
次の検索結果 → n
前の検索結果 → <S-N>
JSファイル内をgrep検索する → :vimgrep /(検索文字)/ **/*.js
確認しながら文字を置換する → :%s/(変更前の文字)/(変更後の文字)/gc
選択範囲内で文字を置換する → :'<,'>s/(変更前の文字)/(変更後の文字)/g
カーソル位置にある単語を選択して、すべて置換する → # :%s//(変更後の文字)/gc



【領域選択】
領域を選択する → v
領域を矩形選択する → <C-V>
領域を行単位で選択する → <S-V>
カーソル位置の単語を選択する → viw
カーソル位置の括弧内を選択する → vi{



【タグ移動】
タグを生成する → vimshellを開いて ctags -R
カーソル位置の関数定義位置に移動する → <C-]>
直前のタグへ戻る → <C-T>



【ウィンドウ】
ファイラーを開く(Shougo/vimfiler) → :e .
画面を分割して交互に画面を移動する(Shougo/vimfiler) → <Tab>
カーソル上のファイルを編集する(Shougo/vimfiler) → e
カーソル上のファイルを、縦分割して編集する(Shougo/vimfiler) → v
ドットファイルを表示する(Shougo/vimfiler) → .
異なるウィンドウ間を移動する → <C-W>
ウィンドウを広げる → <C-W>+
ウィンドウを縮める → <C-W>-
ひとつ上のディレクトリを開く(Shougo/vimfiler) → h
ドライブの切替(Shougo/vimfiler) → <S-L>
ホームディレクトリを開く(Shougo/vimfiler) → ~
ルートディレクトリを開く(Shougo/vimfiler) → \
カーソル上のファイルに対して、様々なアクションを選択して実行(Shougo/vimfiler) → a
vimfiler上のカレントディレクトリを、システムのエクスプローラで開く(Shougo/vimfiler) → ge
カーソル上のファイルを、システムに関連付けされたアプリケーション(コマンド)で実行する(Shougo/vimfiler) → x
カーソル上のファイルにマークをつける、または、はずす(Shougo/vimfiler) → Space
マークしたファイルをコピー(Shougo/vimfiler) → c
マークしたファイルを移動(Shougo/vimfiler) → m
マークしたファイルを削除(Shougo/vimfiler) → d
マークしたファイルの名前を変更(Shougo/vimfiler) → r
新規ディレクトリを作成(Shougo/vimfiler) → K
新規ファイルを作成(Shougo/vimfiler) → N



【タブ】
新しいタブを作成する → :tabnew
次のタブを表示する → gt
最初のタブを表示する → :tabfirst
最後のタブを表示する → :tablast



【バッファ管理】
バッファに保存中のファイルを確認する → :ls
バッファから特定のファイルを呼び出す → :b(番号)<CR>
次のバッファのファイルを開く → :bn
前のバッファのファイルを開く → :bN



【レジスタ管理】
選択範囲をレジスタaに保存 → "ay
今いる行をレジスタaに保存 → "ayy
レジスタaの内容をカーソル位置にペースト → "ap
レジスタに格納されている情報の一覧 → :reg



【マーク】
現在位置のカーソルをマークaに保存 → ma
マークaの位置に移動 → 'a
マークの一覧を表示する → :marks



【折りたたみ】
選択領域を折りたたむ → zf
折りたたみを展開する → <Space>



【単語補完】
単語を保管する(Shougo/neocomplcache) → <Tab>
単語を保管する → <C-P>
単語を保管する(後方検索) → <C-N>



【操作記憶】
操作の記録を開始し、レジスタaに保存する → qa
操作の記録を終了する → q
レジスタaに保存された操作を再生する → @a
レジスタaに保存された操作を5回再生する → 5@a
前回再生した操作を連続再生する → @@



【外部コマンド連携】
vimshellを開く(Shougo/vimfiler) → ,is
コマンド入力位置を先頭に移動 → <C-A>
コマンド入力位置を末尾に移動 → <C-E>
コマンド入力位置を右に移動 → <C-F>
コマンド入力位置を左に移動 → <C-B>
外部コマンドを実行する → :!(コマンド)
外部コマンドを実行結果を取り込む → :r!(コマンド)
コマンドの履歴を確認する → q:
編集中のファイルをGistに投稿する(mattn/gist-vim) → :Gist
Scalaを起動する → ,iscala
SpiderMonkeyを起動する → ,ijs



【その他】
プラグインをインストールする → :BundleInstall
プラグインを再インストールする → :BundleInstall!





■ おすすめのVim関連サイト

・vimgolf
http://vimgolf.com/

・Vimコマンド ツイート BOT
@be_vimmer_jp