[[VSCode]]の[[Compare Active File with Clipboard]]と同様のことを[[Neovim]]で実現する方法。以下のようなfunctionを定義する。
```lua
-- キーマップは一例
vim.keymap.set("n", "<C-w>d", function()
vim.cmd([[
let ft=&ft
leftabove vnew [Clipboard]
setlocal bufhidden=wipe buftype=nofile noswapfile
put +
0d_
" remove CR for Windows
silent %s/\r$//e
execute "set ft=" . ft
diffthis
wincmd p
diffthis
]])
end, { desc = "Compare to clipboard" })
```
![[2025-10-02-07-12-25.avif|frame]]
*左がクリップボード、右が比較元ファイル*
以下のキーバインドを覚えておくと便利。
| キーバインド | アクション | 覚え方 |
| ------ | --------------------- | --------- |
| `]c` | 次のdiffへ移動 | |
| `[c` | 前のdiffへ移動 | |
| `do` | 🙆♂️クリップボードの内容を取り入れる | okの **o** |
| `dp` | 🙅クリップボードの内容を取り入れない | oの次 |
## 参考
- [Reddit - ソーシャルの新たな中心地](https://www.reddit.com/r/neovim/comments/1bak1ln/comment/ku6atp4/?tl=ja&utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button)