Markdown 用 TextObject Vim プラグインを作った
Markdown のコードブロックを選択するVimプラグインを作りました。
動きは動画を見て頂くのが早いと思います。
TextObject とは
Vim の「範囲を表す」概念です。
- Vim Advent Calendar 2013 97日目:モモンガでもわかるテキストオブジェクトとオペレータ - C++でゲームプログラミング
- Vimのテキストオブジェクトについてまとめた - Qiita
知らない人は、上記のブログなどを読むとTextObjectの正体がつかめるかも知れません。
Vimでは、kana/vim-textobj-user というプラグインを使用することで、独自のTextObjectを定義することが出来ます。
今回は、上記のプラグインを利用してMarkdown用のTextObjectを定義しました。
How to use
冒頭の動画でもお見せしましたが、ic
, ac
で、Markdownのコードブロックに対して任意の操作を行うことが出来ます。
例えば、dic
で、コードブロックの内側を削除することが可能です。
Installation
NeoBundle を使う場合は、以下のコードを~/.vimrc
に追記します。
NeoBundle 'kana/vim-textobj-user' NeoBundle 'pocke/vim-textobj-markdown'
NeoBundleLazy をしたい場合は、以下のようにします
NeoBundleLazy 'pocke/vim-textobj-markdown', { \ 'depends': 'kana/vim-textobj-user', \ 'on_map': [['xo', 'ac'], ['xo', 'ic']], \ }
そして、:NeoBundleInstall
を実行します。
その他
動画で画面上にキーをオーバーレイ表示するのにはscreenkey
というソフトウェアを使いました。
@p_ck_ あーそっちでしたか.あれはscreenkey というやつですね!
— はやぶさ (@haya14busa) 2016, 2月 9
haya14busa さんにこの存在を教えてもらいました。haya14busa++
まとめ
GitHubでのStar/Pull Request/Issue待ってます!