我希望 Vim 在搜索后将光标垂直放置在屏幕中间。我已经通过我的以下行实现了 for *、#和n命令:Nvimrc
nmap * *zz
nmap # #zz
nmap n nzz
nmap N Nzz
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何映射/和?同样的方式?换句话说,我想在使用以下命令找到某些文本后以相同的方式定位光标:
/some-text-to-find-forward
?some-text-to-find-backward
Run Code Online (Sandbox Code Playgroud)
编辑:扔掉我最初的答案,因为它太杂乱了。这是一个更好的解决方案。
function! CenterSearch()
let cmdtype = getcmdtype()
if cmdtype == '/' || cmdtype == '?'
return "\<enter>zz"
endif
return "\<enter>"
endfunction
cnoremap <silent> <expr> <enter> CenterSearch()
Run Code Online (Sandbox Code Playgroud)
其工作方式是Enter在命令行模式下重新映射到自定义表达式。
zz如果命令行当前正在搜索中,该函数将执行当前搜索。否则它只会执行正在执行的任何命令。