Open2
Denops で .vimrc を書く方法の模索

基本方針は以下の通りとなる
Denops は自動的に runtimepath
内の denops/*/main.ts
を読み込む(参照)ため、vimrc 代替用の main.ts
を適当な箇所に配置し、init.vim
には runtimepath
の変更および denops.vim
自体のロードなど、必要最低限な設定を記述しておく。
denops_std として set
や map
などのコマンドを呼び出すための便利な標準ライブラリが提供されているため、main.ts
内の main
メソッドにて、これらを利用することができる。これにより、TypeScript で Vim の設定を直接変更することができる。
Vim script による関数定義と、各種 hook などによる関数呼び出しの設定に関しては、まず denops.dispatchers
で関数の処理本体を定義し、その後以下のようにして denops.exec
を利用しラッパー関数を定義することで実現できるのではないか。(要検証)
// echo dispatcher のラッパー関数を定義
await execute(
denops,
`fu! DispatchEcho()\n denops#request('helloworld', 'echo', ["Hello Denops!"])\n endf`
);
// プラグインの Hook 関数などに指定
await globals.set(
denops,
"fooplugin_hoge_func",
funcref(denops, 'DispatchEcho')
);