衝撃のわからなさ

わかってません

2024/01/01日報

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を外すのは安いのでそうすることにした。