Created
October 25, 2014 15:06
-
-
Save alarky/7a27bc2c7e6cca1cef0b to your computer and use it in GitHub Desktop.
実践vimを途中まで読んだメモ @osakavim #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
^ と $ を全然使ってない | |
j$. (次の行の末尾で繰り返し) | |
f+ (行中の + にカーソル移動) | |
s + <ESC> (1文字削除して、” + “ を挿入 | |
w W 次の単語 | |
b B 前の単語 | |
daw 単語を削除 (delete a word) | |
Ctrl-a 数値を加算 | |
Ctrl-x 数値を減算 | |
↑ただし、 007 のような値は8進数として解釈するのがデフォルト | |
10進で扱いたい場合は set nrformats= をvimrcに追加 | |
複数単語分を書き換え | |
c2w | |
オペレータ+モーション=アクション | |
d{motion} | |
dl 単一文字 | |
daw 単語 | |
dap パラグラフ | |
オペレータ | |
g~ 大文字小文字の入れ替え | |
gu 小文字化 | |
gU 大文字化 | |
Ctrl-h 1文字削除 | |
Ctrl-w 1単語削除 | |
Ctrl-u 行頭まで削除(この3つはbashでも使える) | |
挿入ノーマルモード | |
Ctrl-o 挿入モード中にノーマルモードに切り替え(1コマンドが終わったら挿入モードに戻る) | |
zz 現在の行を中央にする | |
<Ctrl-r>0 (挿入モード中)レジスタ0の貼り付け | |
<Ctrl-r><Ctrl-p>0 上記よりちょっと賢い(インデントとか) | |
<Ctrl-r>= (挿入モード中)簡単な計算結果を挿入 Expressionレジスタ | |
ヴィジュアルモード | |
v 文字指向 | |
V 行指向 | |
<Ctrl-v> ブロック指向 | |
gv 直前のビジュアルな選択範囲を再度選択する | |
タブとウィンドウ周り、もうちょっと便利に使えそう | |
:tabnew タブ作成 | |
:tabedit {filename} タブ作成 | |
<Ctrl-w>T 現在のウィンドウを新たなタブに移動 | |
:clo[se] 現在のウィンドウを閉じる | |
:on[ly] 現在のウィンドウ以外を閉じる | |
:tabc[lose] 現在のタブを閉じる | |
:tabo[nly] 現在のタブ以外を閉じる | |
:lcd {path} (現在のウィンドウの作業ディレクトリを設定) | |
:windo lcd {path} (現在のタブ内のウィンドウ全てに大して作業ディレクトリを設定) | |
:tabn[ext] {N} // {N}gt タブNに移動(goto tab {N}) | |
:tabn[ext] // gt 次のタブへ移動 | |
:tabp[evious] // gT 前のタブへ移動 | |
pathを設定すると | |
:find foo.js | |
のような感じでファイル名だけで開ける | |
複数マッチしたらタブで切り替え | |
ファイルエクスプローラーでは | |
- で親ディレクトリに移動できる | |
:E[xplore] アクティブなバッファのディレクトリでファイルエクスプローラをオープン | |
:Se[xplore] 水平分割でエクスプローラ | |
:Ve[xplore] 垂直分割でエクスプローラ | |
netrwは、ネットワーク経由でのファイルの読み書きも可能らしい | |
(scp, ftp, curl, wgetなど・・・) | |
スーパーユーザーとしてファイルを保存 | |
:w !sudo tee % > /dev/null | |
← Password: | |
論理行と表示行 | |
j gj 1行下 | |
k gk 1行上 | |
0 g0 先頭の文字 | |
^ g^ 空白以外の先頭の文字 | |
$ g$ 行末 | |
単語単位の移動 | |
w 次の単語の先頭に前進 (for-Word) | |
b 現在の単語もしくは前の単語の先頭に後退 (Back-word) | |
e 現在の単語もしくは次の単語の末尾の前進 | |
ge 前の単語の末尾に後退 | |
ea 現在の単語の末尾に追加(Append at the End of the current word) | |
gea 前の単語の末尾に追加 | |
wordとWORDの違い | |
word 英数字、アンスコが連続したもの、もしくはその他の非空白文字が連続したもので、ws文字によって区切られる | |
WORD 非空白文字が連続したもので、wsで区切られる | |
W B E gE 等 | |
cW とかよく使いそう | |
f{char} 次の{char}に移動 | |
F{char} 前の{char}に移動 | |
t{char} 次の{char}の直前に移動 | |
T{char} 前の{char}の直後に移動 | |
; 直前の文字検索コマンドを繰り返す | |
, 直前の文字検索コマンドを逆方向に繰り返す | |
テキストオブジェクト | |
{}で囲まれた中にカーソルがある状態で | |
vi} をすると {の次から}までを選択できる | |
↓モーションとして使える! | |
a{delimiter} delimiterを含めて範囲を広げる (around/all) | |
i{delimiter} delimiterの内側に範囲を広げる (inside) | |
delimiter : (){}[]<>’”` t(タグ) | |
iw 現在のword | |
aw 現在のword +前後どちらかの空白 | |
iW 現在のWORD | |
aW 現在のWORD +前後どちらかの空白 | |
is 現在の文 | |
as 現在の文 +前後どちらかの空白 | |
ip 現在の段落 | |
ap 現在の段落 +前後どちらかの改行 | |
場所をマーク | |
m{a-zA-Z} 現在のカーソル位置に、指定された文字でマークをする | |
'{mark} マークが設定された行に移動して、最初の非空白文字にカーソルを置く | |
`{mark} マークが設定されたまさにその場所に移動する | |
自動マーク | |
'' 現在のファイルで直前に行われたジャンプ以前にいた場所 | |
'. 直前に変更された場所 | |
'^ 直前に挿入があった場所 | |
'[ 直前に変更もしくはヤンクが行われた先頭 | |
'] 直前に変更もしくはヤンクが行われた末尾 | |
'< 直前のビジュアル選択範囲の先頭 | |
'> 直前のビジュアル選択範囲の末尾 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment