. . .
宗教戦争をしに来たわけではない
→ あなた, まだキーボードを連打していませんか?
このスライドの半分以上は移動するコマンドの紹介です
でも言いたいことは後半
いろいろ言いますが, (僕は)覚えられないです
お手元に Vim を用意しておくのが一番良さそうです
お手元に *nix の端末があるなら, たいてい入っている
Windows では Kaoriya 版 Vim がいろいろ入っていて使いやすい
http://www.kaoriya.net/software/vim/
gvim : gui 版 vim
Vim にはモードが有る
Normal モードから[]のキーを押すことで, Normal以外のモードに推移
Esc を押すことで Normal モードに戻る
i
Insert モードにv
Visual モードに
<Esc>
Normal モードにu
元に戻す [Undo]:w<CR>
書き込み [write]:q<CR>
閉じる [quit]. . .
<CR>
は Enterキー [Carriage Return]<C-x>
は CTRL キーと x を同時押しの意味<M-x>
META(ALT)キーも存在するh
N文字右にj
論理行でN行下にk
論理行でN行上にl
N文字左にVim の大体のコマンドは前に数字をつけることが出来る
123j
123行下に(いけるところまで)指定しない場合大抵 N=1
基本的にN回繰り返すことと同等
$
^
(0
) 行末に 空白を除く行頭に (実の行頭に)G
gg
最後の行に 最初の行(N行目)に(
)
次文に, 前文に{
}
次段落に, 前段落に<C-d>
<C-u>
半画面に下に 上に [Down,Up]<C-f>
<C-b>
一画面に下に 上に [Foward,Back]H
(M
) (L
) 画面上部に (中央に) (下部に) [High,Middle,Low]w
b
(W
B
) 1単語右に 左に (WORD単語で) [Word,Back]e
(ge
) 単語の終わりに (前の単語の終わりに) [End]%
対応するカッコに移動する (次の閉じカッコに移動)WORD は空白区切りの文字列
単語は hoge-piyo の - とかで区切られる
fx
tx
(Fx
Tx
) 次のxに 次のxの手前に (前の) [Find,To]f
と t
は ;
で繰り返せる
/hoge
(?hoge
) hogeを下に検索する (上に)n
(N
) 次の検索文字列へ (前の) [Next]gd
(gD
) 関数内でカーソル下の単語の定義元に (ファイル内)[m
(]m
) 次のメソッドに (前)[/
(]/
) 次のコメントに (前)g;
前変更箇所に移動, もっと前にも戻れる → :changes<C-o>
(<C-i>
) 大きな移動の前に戻る (進む) → :jumps移動後に Insert モードになる
移動のみ | Insertモードに |
---|---|
なし | i |
l 一文字右 |
a [Append] |
^ 先頭 |
I |
$ 終わり |
A |
g; 前変更 |
gi |
10i=<Esc>
========== を入力してくれる
o
(O
) 新しい次の行(前の行)を作り Insertモードに
テキストを操作する
d
(dd
) 削除 (一行削除) [Delete]y
(Y
) ヤンク (一行ヤンク) ヤンクはコピーと同じ意味 [Yank]c
(cc
) 変更 (一行変更) [Change]gu
(gU
) 小文字化 (大文字化)>
(<
) インデント (逆インデント)変更は削除してから Insert モードに入る
削除, ヤンクしたものは p
で貼り付けられる [Paste]
範囲選択後にオペレータ
v5wd
5単語選択して削除オペレータは移動を続けることでも働く
dw
単語末まで削除 [Delete Word]c{
段落末まで置換v5wd
より d5w
が楽
これが大量の移動コマンドがある理由!
“delete 5 words” と感じ取れれば良い
5dw
と d5w
は同じ
“5times delete a word” と “delete 5 words” の違い程度
上下に動くものは行全てに適用される
dj
下2行を削除dvj
行指向でなくすd<C-v>j
ブロック指向Visualモードに入るコマンドと対応している
直前の変更を .
で繰り返すことが出来る
dw....
5単語削除ihoge<CR><Esc>..
hoge を 3回挿入移動の代わりに使える, 範囲を表すモノ
(hoge) にたいして
a(
は (hoge) [Around]i(
は hoge [Inner]例えば ci[
は [] 内を変更 [Change Inner []]
オブジェクト | 意味 | 例 |
---|---|---|
w (W ) |
単語 (WORD) | hoge (HO=GE) |
s (p ) |
文 (段落) | hoge. |
[ ( { < |
カッコ | (hoge) |
t |
htmlタグ | <p>hoge<p> |
" ' \` |
クオート類 | “hoge” |
das
一文削除 [Delete A Sentence]
a
は周りの空白ごと削除する
便利なコマンドは使うようになるので,
何度か実践してみよう
vimtutor は良く出来ているし :help を読もう
矢印キーを使わないで, 移動を活用してみる
まだまだ便利なコマンドはたくさんある
便利なプラグインもたくさんある
neovim 1.0出ました