選択したブロックを一時ファイルに書き込み、そのファイルで関数 (knitcite) を実行してから、別のファイルを読み取る一連の vim コマンドがあります。
w! ~/.vbuf <CR>
!knitcite ~/.vbuf ~/.vbuf <CR>
r ~/.vbuf <CR>
最初のコマンドを実行する前にビジュアル モードでテキスト ブロックを選択すると、
:'<,'>w! ~/.vbuf <CR>
必要に応じて、選択した内容をファイルに渡します。これを.vimrcの単純なvim関数に入れることができますが、視覚的な選択の内容を関数に渡す方法がわかりません。これが 3 つのコマンドではなく 1 つのコマンドであれば、ビジュアル マップでこれを行うことができますが、3 つのコマンドで行う方法がわかりません。何かのようなもの:
command knitcite call Knitcite()
func! Knitcite()
exec "w! ~/.vbuf <CR>"
exec "!knitcite ~/.vbuf ~/.vbuf <CR> "
exec "r ~/.vbuf <CR>"
func
ただし、これはビジュアル ブロックから渡されたデータを取得しません。Knitcite 関数に引数を与える必要があると思いますが、それが何であるかわかりません。(これはこの SO の質問に関連しているようですが、その回答から一般化する方法がわかりませんでした。)