我需要重写/重新定义Vim的搜索运算符“ /”,以便在搜索后也执行“ zszH”,以使搜索结果在屏幕上水平居中。
例如,我要输入:/ varchar并将搜索结果(即字符串“ varchar”)水平显示在scren的中间。
我现在可以通过在每次搜索后手动输入“ zszH”来做到这一点,但这很繁琐。
答案 0 :(得分:1)
您可以使用CmdlineLeave
事件。将以下内容添加到您的vimrc
augroup RecenterSearch
autocmd!
autocmd CmdlineLeave [/?] call feedkeys('zszH', 't')
augroup END
注意:CmdlineLeave
需要Vim 8.1
或者您可以映射<cr>
:
cnoremap <expr> <cr> "\<cr>" . (getcmdtype() =~ '[?/]' ? "zszH" : '')
一些可能有用的映射:
nnoremap n nzszH
nnoremap N NzszH
如果您在Vim上没有足够新的版本,则可以考虑使用'wrap'
或创建映射
有关更多帮助,请参见:
:h CmdlineLeave
:h :autocmd
:h feedkeys()
:h expression-mapping
:h getcmdtype()