Vim Advent Calendar 2013 179日目: 任意のコマンドを実行する operator をつくった

この記事は Vim Advent Calendar 2013 179日目の記事になります。
今日の担当だった某ももんがさんはスタドリを飲むのに忙しいので代わりにわたしが(大嘘。

上記の記事を読んでいて『任意のコマンドを実行する operator があれば汎用性高そうだなー』と思ったので簡単につくってみました。

[プラグイン]

NeoBundle "kana/vim-operator-user"
NeoBundle "osyo-manga/vim-operator-exec_command"

[使い方]

" :help する
" %t は {motion} に該当するテキストに置き換わる
nmap <expr> <Space>* operator#exec_command#mapexpr(":help %t")

" {motion} の範囲を任意の1文字で置き換える
" operator の入力後に置き換える位置文字を入力する
" %v は {motion} のビジュアルモードのモードの文字列に置き換わる
" visualmode() を同等である
nmap <expr> <A-r>
\   operator#exec_command#mapexpr(":normal! `[v`]lr" . nr2char(getchar()))
" {motion} の入力後に置き換える位置文字を入力したい場合はこっち
nmap <expr> <A-r>
\   operator#exec_command#mapexpr('execute ":normal! `[%v`]lr" . nr2char(getchar())')


いろいろと利用できそう。
要望や不具合があったら Issues までお願いします。