Vim
すこし前の話になりますが sandwich.vim というプラグインを作りました。有名なプラグイン surround.vim のようなもので、文字列を囲んだり、囲まれた文字列から囲みを消したり、置換したりします。 surround.vim に比べて、よりユーザーによる拡張性に重点…
Vim 組み込みの f t F T ; , w b e ge W B E gE コマンドを縦 (列) 方向に模倣したモーションを提供するプラグインです。長いことバグとか放置していたのを何とかしました。 columnmove.vim columnmove-f f t F T コマンドは特定の文字が出てくるところまで…
青っぽい色が好きなので大体青い感じのカラースキームを好んで使っていたんですけど、 Vim を使っているんだし緑もいいかな、って思って書きました。 vim-colorscheme-tatami set background=light はかなり明るく、set background=dark もそんなに暗くない…
ドキュメントは大事です。自分で書いたプログラムですら、しばらくすると使い方を忘れてしまいます。おおよそ、自分で書いてきた vim プラグインにはドキュメント書いてきたのですが、あとあとになってミスを見つけたりしてつまらないコミットを増やすことも…
先日、 swap.vim というものを書きました。コンマ区切りの要素の順番を簡単に入れ替えるためのプラグインです。 今のところ、デフォルトではコンマで区切られたテキストだけに反応します。しかし、ユーザーが設定することでコンマ区切り以外のテキストも扱え…
思い返してみると、実際たいしたことはないうえに頻繁にあるわけでもないんですけど、関数の引数だったり配列の要素だったりの順番を入れ替えたくなることがあります。 call func(arg1, arg2, arg3) これが例えば arg2 と arg3 を入れ替えるとかだったら問題…
2018/8/29 追記 以下に書いている問題は v8.0.0548 以降解消されています。 たまに Vim の拡張としてオペレータを書くのですが、テストを書こうとすると困ることがあります。例として、オペレータを書いてみました。指定された領域の先端に a を、末端に b …
Vim の patch-7.4.849 欲しさに野良ビルドに手を出してしまいました。これは例えば括弧を自動的に閉じるような設定をしている場合に便利なのです。 inoremap ( ()<Left> この設定自体には賛否両論あるらしいのですがその点はスルーします。ただ、賛だとしても Vim </left>…
必要になっていろいろ調べてみると、思いのほか分かっていなかったのでまとめました。上から調べて行って該当するものが使われるようです。 'equalprg' オプションが空でなければ指定された外部プログラムが使われる。 'lisp' オプションがオンなら組み込み…
Vim の組み込み関数も結構変更を受けたりしていて、古い Vim だと動かない機能があったりする。これは仕方がない。どちらかというと今なお活発に開発が行われているということで、いいことだと思う。ただ、困るのはそれがいつからだったか調べるのが大変面倒…
vim-sandwich という vim plugin を書きました。これは vim-surround や vim-operator-surround などのような、括弧やクオーテーションなどで囲まれた文字列を編集するためのプラグインと同種のものです。改行の扱いや矩形選択に対する挙動など、細かい点が…