pockestrap

Web Programmer's memo

Markdown 用 TextObject Vim プラグインを作った

Markdown のコードブロックを選択するVimプラグインを作りました。

github.com

動きは動画を見て頂くのが早いと思います。

f:id:Pocke:20160212083347g:plain

TextObject とは

Vim の「範囲を表す」概念です。

知らない人は、上記のブログなどを読むと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というソフトウェアを使いました。

haya14busa さんにこの存在を教えてもらいました。haya14busa++

まとめ

GitHubでのStar/Pull Request/Issue待ってます!