automatic.vim に preset を実装した
automatic.vim に preset という機能を実装しました。
例えば『unite.vim が開かれた場合に』という設定は、
" unite.vim が開かれた場合にサイズや位置を変更する let g:automatic_config = [ \ { \ "match" : { \ "autocmd_history_pattern" : 'BufWinEnterFileType\(CursorMoved\|CursorMovedI\)$', \ "filetype" : "unite", \ }, \ "set" : { \ "height" : "40%", \ "move" : "bottom", \ }, \ }, \]
というような "match" で定義することができます。
しかし、こういう決まりきっている設定をユーザ側がいちいち設定するのは手間、設定がちょっと複雑です。
と、いう事でこういう決まりきった設定をプラグイン側で用意して、ユーザ側で簡単に設定できるような機能と実装しました。
上記のような『unite.vim が開かれた場合に』という設定は
" unite.vim が開かれた場合にサイズや位置を変更する " "match" にプラグイン側で定義されている設定名を設定する let g:automatic_config = [ \ { \ "match" : "unite_split" \ "set" : { \ "height" : "40%", \ "move" : "bottom", \ }, \ }, \]
このように "match" に "unite_split" と設定する事で再現する事ができます。
また、他の "match" と組み合わせる場合には、
" unite-file が開かれた場合にサイズや位置を変更する " 他の unite-source にはマッチしない " "preset" にプラグイン側で定義されている設定名を設定する let g:automatic_config = [ \ { \ 'match' : { \ "preset" : "unite", \ "unite_sources" : ["file"], \ }, \ "set" : { \ "height" : "40%", \ "move" : "bottom", \ }, \ }, \]
というように "preset" で記述する事ができます。
これでだいぶすっきりしましたね。
他にも設定できる "preset" はいくつかあるんですが、まだ少ないので
『こういうのがほしい!』
みたいな要望があれば教えてもらえると助かります!