🛒
Vim起動時にレジスタの履歴をクリアする
which-key.nvimというプラグインでレジスタの可視化を行っているのですが、過去に起動したときの古いレジスタ履歴まで表示されなくても良いな…と思ったので、起動時にレジスタの中身を初期化しようと思いました。
以下を設定ファイルに記述すると、起動時にレジスタの履歴が削除されます。
また、:ClearRegs
を呼ぶことで、任意のタイミングでレジスタをクリアできます。
.vimrc or init.vim
" {{{ globals
let g:alpha_lower = 'abcdefghijklmnopqrstuvwxyz'
let g:alpha_upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
let g:digits = '0123456789'
let g:alpha_all = g:alpha_lower .. g:alpha_upper
let g:alnum = g:alpha_all .. g:digits
" }}}
" {{{ ClearRegs
function! s:clear_regs() abort
for r in split(g:alnum .. '/', '\zs')
call setreg(r, [])
endfor
endfunction
command! ClearRegs call s:clear_regs()
autocmd VimEnter * ++once ClearRegs
" }}}
アルファベットと数字は'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
のように直接並べて書いても良いのですが、グローバル変数にしておくと他のところでも使えて便利です。
これでアレな文字列がレジスタに入っても安心ですね。
Discussion