## 経緯 - [[Neovim]]では[[ReplaceWithRegister]]を使って、[[無名レジスタ]]を汚さずに[[ヤンクレジスタ]]の内容を特定対象に対してput(置換)したい - ただ、[[Vimrc Support Plugin (Obsidian)|Vimrc Support Plugin]] や他プラグインでもそのような機能はなさそう - [[Vimrc Support Plugin (Obsidian)|Vimrc Support Plugin]] に実装するのが一番良さそう - ただ、『メンテナ募集中』と書かれているので、PRマージしてもらうのはキツイかも - とりあえずforkしてつくってみる ## 対象リポジトリ 最新をcloneしてビルドし、`main.js` を置き換えればOK. <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> GitHub - tadashi-aikawa/obsidian-vimrc-support: A plugin for the Obsidian.md note-taking software </div> <div class="link-card-v2-content"> A plugin for the Obsidian.md note-taking software. Contribute to tadashi-aikawa/obsidian-vimrc-support developme ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/a07327a0752d129656bb9173f98d0ad2ff714894d4e2bd12ca475ef075395538/tadashi-aikawa/obsidian-vimrc-support" /> <a href="https://github.com/tadashi-aikawa/obsidian-vimrc-support"></a> </div> ## 機能追加の方針 - `replaceWithRegister` operator を定義する - operator に渡された range を register 内容で置換する - 置換対象のテキストは yank/delete しない - そのため register は上書きされない [[Codex CLI]]に作成してもらった。対象コミットは以下。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> feat: support mapping an operator to replace text with the yank register · tadashi-aikawa/obsidian-vimrc-support@b00eefa </div> <div class="link-card-v2-content"> A plugin for the Obsidian.md note-taking software. Contribute to tadashi-aikawa/obsidian-vimrc-support developme ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/f0141ccb948cb0cbdfefd215e9e80223fb4c50f4020f60ea6118a57c6538e662/tadashi-aikawa/obsidian-vimrc-support/commit/b00eefac8ea9d2578f0215ffd748c9397edace38" /> <a href="https://github.com/tadashi-aikawa/obsidian-vimrc-support/commit/b00eefac8ea9d2578f0215ffd748c9397edace38"></a> </div> ## 設定 `obsidian.vimrc` に以下を追加する。[[Leaderキー]]でなくてもなんでもよい。 ``` replacewithregister <leader> ``` 自分の場合は `_` を割り当てた。 ``` replacewithregister _ ``` ## 動作イメージ ``` "from" -----------> 'to' ``` とありカーソルが先頭で `yi"_i'` とすると ``` "from" -----------> 'from' ``` となる。[[無名レジスタ]]は `from` のままであり、`to` で上書きされない。