當我進入寄存器時,我經常錯誤輸入"x
語法,所以我想確認它使用哪個寄存器來抽取文本。打印關於Vim報告中使用的寄存器的信息
例如,如果我輸入"x3yy
,我的理想輸出將是「3行被抽出到x中」而不是當前的「3行被抽出」。是否有可能以某種方式修改此報告?理想情況下,它也可以用於刪除等。
當我進入寄存器時,我經常錯誤輸入"x
語法,所以我想確認它使用哪個寄存器來抽取文本。打印關於Vim報告中使用的寄存器的信息
例如,如果我輸入"x3yy
,我的理想輸出將是「3行被抽出到x中」而不是當前的「3行被抽出」。是否有可能以某種方式修改此報告?理想情況下,它也可以用於刪除等。
在最近的Vim版本中已經解決了這個問題,從版本8.0.0724開始:對於yanking的消息並不表示寄存器。
一旦你升級(無論是等待,直到一個包爲您的操作系統是可用的,或編譯的Vim自己),對例如"a4yy
將消息:
4 lines yanked into "a
此功能被添加到修補程序後8.0.0724(Ingo Karkat報告它的榮譽)。
Neovim截至目前還沒有合併這個補丁。然而,它實現了TextYankPost,它允許你破解類似的行爲,因爲它提供了操作類型,使用的寄存器和複製到寄存器的內容。
考慮到這,下面的代碼片段會做你所要求的:
function! s:better_operator_message()
let number = len(v:event['regcontents'])
if v:event['operator'] == 'c' || v:event['operator'] == 'd'
let message = number . ' fewer lines'
elseif v:event['operator'] == 'y'
let message = number . ' lines yanked'
else
return
endif
if v:event['regname'] != ''
let message = message . ' into register ' . v:event['regname']
endif
echom message
endfunction
set report=10000000000
augroup better_operator_message
autocmd!
autocmd TextYankPost * call <sid>better_operator_message()
augroup end
我做了這個片段可作爲plugin,如果你有興趣。
我見。我認爲它可能是不會被支持的情況。我將把它添加到切換到Neovim的可能的好處列表中;)謝謝! –