🛒

Vim起動時にレジスタの履歴をクリアする

2022/08/12に公開

which-key.nvimというプラグインでレジスタの可視化を行っているのですが、過去に起動したときの古いレジスタ履歴まで表示されなくても良いな…と思ったので、起動時にレジスタの中身を初期化しようと思いました。

https://github.com/folke/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'のように直接並べて書いても良いのですが、グローバル変数にしておくと他のところでも使えて便利です。

これでアレな文字列がレジスタに入っても安心ですね。

https://zenn.dev/kouta/articles/ab2d9df961238e

Discussion