先日のxrjamでvimの使い手を目の当たりにしてしまったので、僕もあんな風に思考のスピードでエディタ編集したい!と思い、vimの再勉強を始めてみました。
他のvim書は中を見たことがないのでわかりませんが、この本が神書だったのでこれを使いながら勉強を進め、備忘録を付けていきます。
後で見返した僕が理解できる程度の簡潔さで書いていくので、あまりにもわかりにくかったら下の本をぜひ手にとってみてください。
実践Vim 思考のスピードで編集しよう! (アスキー書籍)
atom package
前提として僕はメインのエディタにatomを使っていますので、キーバインドをvimに似せるために以下のパッケージを入れています。
・vim-mode-plus
・ex-mode
・reactive-numbers: 行番号がカーソルのある行からの相対番号になり10yy
みたいなことがしやすくなります。
・atom-keyboard-macros-vim : q
コマンド実行するためのパッケージ。
一応入れているけど無効状態にしているもの。
・vim-mode
・vim-mode-plus-ex-mode
・cursor-history
atomパッケージを選ぶ時に参考にしたサイト
ベターVimとしてAtomを使う – Kesin’s diary
TIP memo
書籍「実践vim」に出てくるtipのメモです。
本書の各々のtipの目的とはずれてることが多々あります。ただ単に僕がこのtipを読んで学んだコマンドのメモです。
TIP2
A
:行末へ移動しインサートモードへ
TIP3
f{char}
:行内で文字を後方検索。「;」で次へ、「,」でバック
TIP5
単語の上で*
:
カーソルが乗っている単語を検索
「n」で次へ、「N」でバック
TIP9
daw
:カーソルが乗っている単語を削除
【応用】
ciw
,caw
:
など
オペレーターコマンド(c/d/yなど)
+i(in)/a(all)
+w/W/t(tag)/"/}/)など
この組み合わせでかなり強力な操作ができる。
特に3つ目キーがw
やW
のときはカーソルが乗っているキーに対してだが、t
や"
などに対しては目的のものがある行にカーソルが乗ってさえいれば、すぐさま実行できる。これは便利すぎる。
TIP10
これだいぶつよい。
Ctrl-a
:
カーソルが数字の上にある時:数字を1だけ加算
カーソルが数字の上にない時:カーソルを数字のところまで移動した後、1だけ加算
数字の上にカーソルがある時に
10+Ctrl-a
:その数字に10を加算。
Ctrl-x
:減算バージョン
mattnさんのツイートに良いのが書いてあった。
【Vim のブロックワイズ選択部分に連番を入れる方法】CTRL-v で選択開始して I1<ESC> で数字挿入、gv で再選択 o でカーソル戻して j で2行目へ、最後に g<C-A> pic.twitter.com/KXWZQiR2IN
— mattn (@mattn_jp) September 26, 2017
Ctrl-v
+I0
+Esc
+gvog
+Ctrl-a
で楽に連番を作成できる。
連番はマクロを使う方法しか知らなかったので、覚えておく価値があると思う。
実際に使うときにはこんな感じになると思う。
{n}i<Enter>
:n回改行する。
Esc
:ノーマルモードへ移行。
k
:一つ上へ。
Ctrl-v
:矩形ビジュアルモードへ移行。
gg
:ファイルの先頭へ。
I0
:0を入力。
Esc
:ノーマルモードへ移行。
gv
:再選択。
g
+Ctrl-a
:メモリプロファイルをダンプ。
ちょっと長いけど、一つ一つの意味を知っていたら思い出しながら自然にできそう。
Shift-r
:redo
cw
:単語の終点まで削除しインサートモードへ移行
TIP12
オペレーターコマンド
c
: 変更
d
: 削除
y
: ヤンク
g~
: 大文字小文字入れ替え
gu
: 小文字化
gU
: 大文字化
>
: インデント
=
: インデントを揃える
以上のものを繰り返せば行単位
以上のものの後に続けてap
と打てばパラグラフ単位で実行できる。
実践Vim 思考のスピードで編集しよう! (アスキー書籍)