VSCode Vimでは/から検索する際、デフォルトでは大文字小文字が考慮されます。そこで、大文字小文字を区別しないようにしたい場合の設定方法を紹介します。 vim.ignorecaseを有効にする …
Vimのpluginのquick-scope
評判なので入れてみたものの、ドキュメントをよく読まず使うと価値が分からず損するぞという教訓に記事にしておきます。
unblevable/quick-scopeの誤解
公式の説明では
An always-on highlight for a unique character in every word on a line to help you use f, F and family.
訳:f、F、familyの使い分けに便利な、行内の全単語の固有文字を常時ハイライト表示します。
脳内:あー、単語の先頭の文字をハイライトしてくれるのね。
カーソル動かすたびにチラチラ色が変わって鬱陶しいな、消そうかな?と思ってよくよくドキュメントを読んでみると…
全然違いました
quick-scopeの真の力
単語の先頭をハイライトするプラグインではありません。
このプラグインは、単語の固有文字(unique)
をハイライトするものでした。
サンプルをよく見ると、pattern
だけpではなくa
がハイライトされています。
なぜでしょうか?
それは、a
がカーソル位置から見て初めて出現する固有文字だからaがハイライトされています。
例1:カーソル位置からpでpatternへ移動する場合
f > p
と入力するとcomplie
のpに移動します。
;
を押すとようやくpattern
のpへ移動できます。
例2:カーソル位置からaでpatternへ移動する場合
quick-scopeがハイライトしているaで移動します。
f > a
と入力すると一発でpattern
のaへ移動します。
そう、quick-scopeはカーソル位置から一発で飛べるユニークな文字をハイライトして教えてくれていたのです。
一発で飛べると何が嬉しいって、;
で目的の位置まで移動するときって、移動した?あ、まだか、もう一回…と確認しながら進むことになります。
行き過ぎたら,
で戻ればいいからってガンガン進めばいいという意見もありますが、あまりスマートじゃないので好みではありません。
「カーソル位置にいる状態からpatternを書き換える」ケースを処理する
quick-scopeがあれば、aで移動すれば確実に移動できることが保証されているので、
f > a > ciw
と続けて入力すれば確実にpatternを変更できる訳です。
一時は消そうなんて考えたりして申し訳ありませんでした。
このプラグインは捨ててはならない必須なプラグインです。
コメントを書く