y
是在 vim 裡最常使用的使用的 operator 之一,使用 y
operator 將會執行 yank 動作,但它無法像 c
(change) 和 d
(delete) operator 使用之後馬上就知道對文件編輯了什麼。yank 動作是沒有反饋的,按了 yiw
複製 word 之後,你也無法確定是不是按對了,還要使用 :reg
檢視,頗麻煩的。
解決方案:在使用 yank operator 之後,高亮複製區域短暫的時間,就能確認複製的區域有沒有誤。以下圖例為,在 23 行按下 yy
, 在 24 行的 return 上按下 yiw
在 neovim 0.5 裡達到這件事相當簡單,把以下加近
autocmd TextYankPost * silent! lua vim.highlight.on_yank{higroup="IncSearch", timeout=300}
如果是使用 vim 也可以用 vim-highlightedyank 套件達成
Plug 'machakann/vim-highlightedyank'
let g:highlightedyank_highlight_duration = 300
if !exists('##TextYankPost')
map y <Plug>(highlightedyank)
endif
Reference
- https://github.com/neovim/neovim/pull/12279
- neovim
:help lua-highlight