Neovimでヤンクした所をハイライト

今まで、Neovimでヤンクした箇所をハイライトするにはvim-highlightedyankを使っていました。が、どうやらかなり前からNeovimならプラグイン無しで実現できたようです。

やり方

vim.highlight.on_yankを使います。

vim.api.nvim_create_autocmd("TextYankPost", {
group = "my_nvim_rc",
pattern = "*",
callback = function()
vim.highlight.on_yank({ timeout = 300 })
end,
})

デフォルトだと150ミリ秒で消えます。筆者は300ミリ秒にしています。

ヘルプ:vim.highlight.on_yank

おまけ

せっかくなのでおまけも。同じくヤンク関連です。

vim.keymap.set(
"n",
"sgf",
"<Cmd>let @+=expand('%')<CR>:echo 'Clipboard << ' . @+<CR>",
{ desc = "現在のファイル名(相対パス)をyank" }
)
vim.keymap.set(
"n",
"sgF",
"<Cmd>let @+=expand('%:t:r')<CR>:echo 'Clipboard << ' . @+<CR>",
{ desc = "現在のファイル名(拡張子無し)をyank" }
)

sgfで相対パスをヤンクできます。メモするときによく使います。

sgFで拡張子なしのファイル名をヤンクできます。コンポーネント名やテストを書くときにちょくちょく使います。


vim-highlightedyank、ずいぶん長い間お世話になりました。ありがとうございました!