以下の設定は手堅い。 ```ts Vim.defineOperator("yankToClipboard", yankToClipboard); Vim.defineAction("putFromClipboard", putFromClipboard); Vim.mapCommand("y", "operator", "yankToClipboard"); Vim.mapCommand("p", "action", "putFromClipboard"); ``` 以下は細かな動きが色々くずれるので微妙... できれば[[レジスタ (Vim)|レジスタ]]の調整にしたい。 ```ts function yankToClipboard(cm: any) { const state = cm.cm6.state; const selection = state.selection.main; const text = state.doc.sliceString(selection.from, selection.to); navigator.clipboard.writeText(text).then(() => { cm.cm6.dispatch({ selection: { anchor: selection.from }, }); }); } async function putFromClipboard(cm: any, view: any) { await navigator.clipboard .readText() .then((text) => { cm.replaceSelection(text); }) .catch((err) => { console.error("Failed to read clipboard contents: ", err); }); } ```