自分向けの備忘録です。
vim操作を随時追加します。
(はてなブログからこちらに移動しました。)
テキストオブジェクトの選択
keys |
内容 |
ip |
段落 |
ap |
段落+前後どちらかの空白 |
iw |
単語 |
aw |
単語+前後どちらかの空白 |
is |
文 |
例
keys |
内容 |
vipd |
ビジュアルモード 段落を削除する. |
vipy |
ビジュアルモード 段落をヤンク(コピー)する. |
dip |
段落を削除する. |
yip |
段落をヤンク(コピー)する. |
gUaw |
単語を大文字化する |
guaw |
単語を小文字化する |
ビジュアルモード
ファイル内の移動
keys |
内容 |
' ' |
直前のジャンプ位置に戻る |
' . |
直前に変更された位置 |
g; |
直前に変更された位置(履歴を戻る) |
g, |
直前に変更された位置(履歴を進む) |
ctrl+o |
戻る |
ctrl+i |
進む |
* |
カーソル位置の単語を下に検索 |
# |
カーソル位置の単語を上に検索 |
カーソル移動
挿入モード中のカーソル移動、文字削除
keys |
内容 |
Ctrl+h |
直前の1文字削除 |
Ctrl+w |
直前の1単語削除 |
Ctrl+u |
行頭まで削除 |
Ctrl+k |
1文字進む |
※ シェルでも利用可能な模様。
挿入
keys |
内容 |
Shift+i |
行頭(^)に移動して、挿入モード |
Shift+a |
行末($)に移動して、挿入モード |
s |
カーソル位置の文字を削除して、挿入モード |
C |
カーソル位置から行末までを削除して、挿入モード |
S |
カーソル行を削除して、挿入モード |
※Shift+iは行の先頭文字に移動する。(^i) 探しているのは0i...
ウィンドウ操作
keys |
内容 |
Ctrl+w+x |
ウィンドウの表示内容の入れ替え。参考
|
コマンド
keys |
内容 |
:e! |
編集した内容を破棄して、開き直す |
:pwd |
カレントディレクトリを表示する |
:set ic |
大文字小文字を無視する |
:set noic |
大文字小文字を区別する |
args
参考 vimgrepとQuickfix知らないVimmerはちょっとこっち来い
argsで指定した値を##で呼び出せる.
:ar[gs] 長いパラメータ
:grep binding ## "##は長いパラメータを指す"
:grep pry ##
置換
範囲
keys |
内容 |
(無指定) |
当該行のみ対象 |
% |
ファイル全体を対象 |
例
:s /error/result/ # 当該行の最初のerrorをresultに置換する
:%s /error/result/g # ファイル全体のerrorをresultに置換する
オプション
keys |
内容 |
|
選択範囲の1つのみ置換する |
g |
選択範囲全体を置換する |
c |
置換時に確認をする。 |
残念ながらxcodeのvimプラグインでは、c オプションは非対応の模様。
ペースト
keys |
内容 |
"0p |
コピーした内容をペーストする。 |
p |
カーソルの1つ後ろにペーストする |
P |
カーソルの1つ前にペーストする |
A (スペース) Ctrl+o0 |
カーソルの1つ後ろにスペースを1つ入れてペーストする |
Ctrl+r {register} |
挿入モードでペースト. |
Ctrl+r Ctrl+p {register} |
挿入モードでペースト |
検索
keys |
内容 |
/検索ワード\c |
大文字小文字を区別して検索する |
vimgrep
参考 vimgrepとQuickfix知らないVimmerはちょっとこっち来い
:vim {pattern} {file} ...
加算・減算
keys |
内容 |
Ctrl+a |
カーソル上の数値に対して+1する |
Ctrl+x |
カーソル上の数値に対して-1する |
Ctrl+r = |
挿入モードでCtrl+r = すると計算できる |
001などの0プレフィックスがついていると8進数として解釈される。
以下を設定すると10進数として解釈される。
スクロール
keys |
内容 |
Ctrl+u |
上方向に半画面分 |
Ctrl+d |
下方向に半画面分 |
Ctrl+b |
上方向に1画面分 |
Ctrl+f |
下方向に1画面分 |
Ctrl+e |
上方向に1行分 |
Ctrl+y |
下方向に1行分 |
バイナリモード
surround.vim
keys |
内容 |
ビジュアルモード中で:S' |
選択範囲に'を付ける |
ysiw' |
iw(単語)の前後に'を挿入する |
ds' |
前後の'を削除する |
cs'" |
'を"に置換する |
tcomment_vim
Ctrl + -を2回押す
ソート
- :sort 昇順ソート
- :sort! 逆順ソート
- :sort u (重複削除)
- :sort n 最初に見つかる数字でソート
- :sort /\a\a\a/ r 正規表現ソート
元ネタ:Qiita VIMで選択行をソートする
vimdiff
]c : - next difference
[c : - previous difference
do - diff obtain
dp - diff put
zo - open folded text
zc - close folded text
:diffupdate - re-scan the files for differences
元ネタ:https://gist.github.com/mattratleph/4026987