Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vim-mode-plus の occurrence のぱわ〜( と demo-mode のぱわ〜)

$
0
0

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 内の、decorationOptionsoptionsに書き換えている。

お分かりいただけるだろうか?

カーソルを decorationOptionsにカーソル移動してからの d O p, g u o p
demo-occurrence.gif

ただ、殆どの場合 c o pしてから直接マルチカーソルで optionsをインサートした方が楽。
demo-occurrence-2.gif

レジスタ(クリップボード的なやつ)に、すでに optionsというテキストが入ってるなら、replace-with-register operator が楽な場合もある。俺は _にマッピングしているので、キーストロークは _ o p.
demo-occurrence-3.gif

occurrenceg og O(subword 用) でプリセット(事前配置) 出来るので、g Oで、decorationに occurrence-marker をプリセットしてからの c i pでもいける。最後にマルチカーソルで、"O" を小文字にすればOK.
demo-occurrence-4.gif

demo-mode とは?

demo-mode
vim-mode-plus で上記の様な GIF を作りやすくするために作った Atom package。
作ったばかりだが、アニメGIFを作るのが超楽になった。

これで Vim or vim-mode-plus の応用的な操作を説明するのが簡単になるはず。

以下は、色々なテキストオブジェクト( TextObject )を yでヤンクするGIF.

demo-motion-stop.gif

vim-mode-plus では demo-mode が提供する hook( service )を使って、より説明的な GIF が作れるように連携させている。
- 通常はすぐ消える operator のターゲット範囲のフラッシュ効果を保持
- Operation の種類( Operato, Motion or TextObject )を表示

最後に

お分かりいただけただろうか?


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>