denops.vimでURLをtitle付きにするvimプラグインを書く
denops.vimで選択範囲のテキストを置き換える方法
昨日はtutorialやっただけなのでより近い簡単なものを書いて感触を掴む。
tutorial見ただけだとevalやcallのなかにvimscriptを埋め込む必要があり
大変だと思っていたがfunctionで呼べるらしい。 必読
Denopsでプラグインを作るときのTips
とりあえず選択範囲のaをbに置き換える処理を書いてみて↓で動いた
export async function main(denops: Denops): Promise<void> { denops.dispatcher = { async func(start: number, end: number): Promise<void> { const lines = await getline(denops, start, end); const replaced = lines.map((l) => l.replace("a", "b")); await setline(denops, start, replaced); }, }; await denops.cmd( 'command! -range TestFunc call denops#request("test", "func", [<line1>, <line2>])', ); }
とても書きやすい 。最高。もう二度とrplugin使わない。
impactaky/add_title_to_url.vim 書いた
理解したので書いた。 これを
https://taki4416.hatenablog.com/entry/2023/12/31/230940
選択して実行するとURLにアクセスしてtitle情報を引っ張ってきて こう変換してくれる。
[2023/12/31日報 - 衝撃のわからなさ](https://taki4416.hatenablog.com/entry/2023/12/31/230940)
vscode-neovimで動かないpluginの調査
denops.vimで書いたプラグインがすんなりvscode-neovimで動いた。
rpluginなどは移行したときになぜか動かないと思って諦めていたのですが、
やはりそれはおかしい気がして確認することにしてみた。
deinのon_ftを外した
状況から勘違いしていた原因は結論としてdeinのon_ftがうまく動作しないことのように思えた。 これがなぜ起きているのかは調べていないが、on_ftを外すのは安いのでそうすることにした。