使いたいVimプラグインがNeoVimで対応してない? NeoVimは環境、VimはVMだよ?

 ドーモ、最近NeoVimを使い始めたyiコントリビューターのVimmerのあいやです。
この記事はVim Advent Calendar 2016 - 17日目の記事ではありません
だってもう、既に枠が埋まってたんだもん。

NeoVimで動かないVimプラグインを動かす

僕が開発してるaref-web.vimっていうのがあるんですが



VimとNeoVimの非同期APIが非互換なので、NeoVimに対応してません :(
でもNeoVimは強いので、NeoVimの上でVimが動かせます

ちゅーこってこんなコマンドを定義する。

command! -bar -nargs=* -complete=file VimRunDo terminal vim -c <q-args>

するとこんなんできます。

sample-image

一瞬エラーが出てるって?
うーん、なぜVim内でNeoVim関連のエラーが出るかは知らないのでNeoVimの中の人に原因を聞いてみてください…。

ちなみに↑で使用したキーマッピングはこんな感じ。

nnoremap <leader>K :<C-u>vsp \| VimRunDo Aref weblio <C-r>=expand('<cword>')<CR><CR>
nnoremap <leader>S :<C-u>vsp \| VimRunDo Aref stackage <C-r>=expand('<cword>')<CR><CR>
vnoremap <leader>K "zy:<C-u>vsp \| VimRunDo Aref weblio <C-r>z<CR>
vnoremap <leader>S "zy:<C-u>vsp \| VimRunDo Aref stackage <C-r>z<CR>

ということで実用性は限られますが、辞書を引いたりオセロをしたりっていうカレントバッファに作用する感じではない感じの、 NeoVimに対応してないVimプラグインもNeoVimで動かせたかのように見せることができます :D


追記

 プラグイン化したよ!

nvim-vim-runner / GitHub

筆者プロフィール

my-latest-logo

aiya000(あいや)

せつラボ 〜圏論の基本〜」 「せつラボ2~雲と天使と関手圏~」 「矢澤にこ先輩といっしょに代数!」を書いています!

強い静的型付けとテストを用いて、バグを防ぐのが好き。Haskell・TypeScript。