この記事はRUNTEQ Advent Calendar 2019 5日目の記事です。
昨日は @tukinasikotonohaさんの 『地方出身のエンジニア未経験者が、東京のプログラミングスクールに通う前にやっておいた方が良いこと』でした。
『木の葉の美しき碧い野獣』ロック・リーを知っているか?
私は子供の頃、彼が好きだった
私が初めてのエディタにVimを選んだのも、体術というシンプルな技を極めんとするリーの姿と、無骨でシンプルなエディタを使いこなすVimmerの姿が無意識のうちに重なったからかもしれない
そう、私はVimでロック・リーになりたかった
ところが今の私はどうだ
私はロック・リーになれなかった。呪印の力に溺れ、堕ちたのだ
他人のvimrcをコピペした。キーリピートの速度を上げ、全ての移動を hjkl
で済ますようになった。プラグインの存在を知ってからは、毎日貪るように新しいプラグインを導入した
vim-easymotionを導入した時になってようやく私はそれが大蛇丸の呪印であることに気づいたが、もう遅かった。この時にはもう、Vimの基本的な体術である w
や b
を使って移動することは馬鹿らしいとさえ考えていた
プラグイン、キーマップ、vimrc編集の危うさ
Vimのカスタマイズ性を楽しみにVimに入ってきた者は、初心者のうちから積極的なカスタマイズをしたがる傾向にある。だが呪印の餌食になりたくなければ慎重になった方がいい
Vimのノーマルモードではほぼ全てのキーに何らかのマップが施されている。独自のキーマップも確かに便利だが、デフォルトのマップを潰してしまう可能性は常に考えておかねばならない(デフォルトの全てのマップは :h index.txt
で確認できる)
プラグインは呪印だ。簡単に強大な力を得られるが、その代償として「速さ」と「どこでも使えるポータブルなVim力」を失うことになる。このトレードオフのどちらを取るかは人それぞれだが、「プラグインや自分のvimrcがないとまともにVim使えない!」なんてことは避けたいものだ
Vimでロック・リーする
リーは自らの四肢に重りをつけて生活することで24時間鍛錬を続けていた
これに習い、Vimでもある程度の制約を設けることで通常より圧倒的に早く素のVim力を向上させることができる
すでに素のVimを使いこなしている人には必要ない鍛錬だが、過去の私のように、他人のvimrcをコピペしたり、よくわからないままプラグインを使っている人はぜひこの方法で鍛え直してみてほしい
過去の自分と決別する
$ rm-rf ~/.vimrc ~/.vim
キーを制限する
map <Left><Nop>
map <Down><Nop>
map <Up><Nop>
map <Right><Nop>
map <Backspace><Nop>
矢印キーを封印する代わりに word/WORD
を使った移動、 f/t
を使った移動、/
の検索や m
のマーク、{/}
の空行移動などを使用する
バックスペースは別に封印しなくてもどちらでもいいが、私はホームポジションから離れたくないので <C-h>
や <C-w>
, <C-u>
の方がより好みだ
<補足>負荷を上げる
map <Left>:qa!
map <Down>:qa!
map <Up>:qa!
map <Right>:qa!
map <Backspace>:qa!
もっと強い負荷の掛け方を思いついた人は教えて欲しい
キーのリピート速度を下げる
macなら簡単にキーリピート速度を変更できる
キーリピートが速いと長距離の移動でも hjkl
で済ませがちだ。これを制限することでVimの特徴的なモーションをより早く習得することができる
ヘルプを強制する
ヘルプには全ての情報が載っているし、他のどんな情報より正確だ
少なくとも下記2つの場面では必ずヘルプを見よう
- vimrcに新しい記述を追加するとき(
set number
など) - 初めて使うキーを使用するとき(
w
,.
など)
ヘルプは :h[elp] {検索ワード}
で見ることができる
理想は自分がVim上で押す全てのキー・コマンドについてのヘルプを読むこと
<補足>ヘルプの日本語化
デフォルトのヘルプは英語。どうしても無理ならヘルプの代わりにvim-jp日本語ドキュメントを読むか、もしくは以下の手順でヘルプを日本語化する
- お好みのプラグインマネージャでvimdoc-jaをインストール
- vimrcに
set helplang=ja,en
を追記
vim-jpを毎日読む
ヘルプ参照に加えてvim-jp日本語ドキュメントを毎日読むこと。特にモーション、ジャンプ、検索、ファイル操作(ファイル移動)あたりを覚えたい
1日1コマンド覚えるつもりでこまめに読んでみてほしい
『実践Vim』を読む
『実践Vim』は神本だ
Kindle版は2,000円ちょっとで購入できる
vimrc追記方針
YAGNIの法則に則る
追記の際は必ずヘルプを見ること
重りを外す
Vimで2週間もロック・リーしていれば、これまでより圧倒的に成長した自分のVim力に気がつくだろう
こうなったら、少しずつプラグインや独自キーマップ、キーリピートの速さを上げる、などに手を出していけばいい。鍛錬を積んだ君なら呪印も、禁術も使いこなすことができるはずだ
リーー!! 外せ!!!!!!!(マイト・ガイ)