vim-mode-plusは、ユーザーも増えて、有名なプログラマ達も使っているとか、使おうとしているとかがあるのですが、皆、当たり前ですが、vim と同等の機能を探したがります。
それはそれで仕方がないのですが、vim-mode-plus の独自の拡張機能は知られないまま、使われないままというケースがとても多い。
これは色々理由があるだろうけど、一番大きな理由として、"ノーマルな Vim の動作を尊重する" ようにデフォルト値を設定しているので、そもそも独自機能が知られていない、というものがある。
そもそも俺が vim-mode-plus を興奮してやっているのは、ノーマルな Vim では難しい実験機能を JavaScript( CoffeeScript ) powered な Hackable な Atom でやれるからだ。
なのにそれが知られていない、というのは本末転倒だ、俺は別に「完全な Vim エミュレーター」を作りたい訳ではない。
だったらそもそもピュアな Vim 使えばいいわけだ。
そこで、この状況から少し前進する為に、まずはアニメ GIF を作ってみようと考えた。
以下サンプルです。
元ネタは、以下のツイッター連投。日本語でも共有したいと思いまして。
https://twitter.com/t9md/status/849872727540342784
The power of occurrence
以下の GIF では色々な方法で Paragraph 内の、decorationOptions
を options
に書き換えている。
お分かりいただけるだろうか?
カーソルを decorationOptions
にカーソル移動してからの d O p
, g u o p
ただ、殆どの場合 c o p
してから直接マルチカーソルで options
をインサートした方が楽。
レジスタ(クリップボード的なやつ)に、すでに options
というテキストが入ってるなら、replace-with-register
operator が楽な場合もある。俺は _
にマッピングしているので、キーストロークは _ o p
.
occurrence
は g o
や g O
(subword 用) でプリセット(事前配置) 出来るので、g O
で、decoration
に occurrence-marker をプリセットしてからの c i p
でもいける。最後にマルチカーソルで、"O" を小文字にすればOK.
demo-mode とは?
demo-mode
vim-mode-plus で上記の様な GIF を作りやすくするために作った Atom package。
作ったばかりだが、アニメGIFを作るのが超楽になった。
これで Vim or vim-mode-plus の応用的な操作を説明するのが簡単になるはず。
以下は、色々なテキストオブジェクト( TextObject )を y
でヤンクするGIF.
vim-mode-plus では demo-mode が提供する hook( service )を使って、より説明的な GIF が作れるように連携させている。
- 通常はすぐ消える operator のターゲット範囲のフラッシュ効果を保持
- Operation の種類( Operato, Motion or TextObject )を表示
最後に
お分かりいただけただろうか?