如何预加载Vim搜索历史?解决启动搜索项未存入历史的问题
将Vim启动时的指定搜索字符串预加载到搜索历史
方法一:直接操作搜索历史变量
Vim的正向搜索历史存储在v:searchforward列表中,当前搜索模式可通过@/寄存器访问。启动时用-c参数执行命令,同时将目标模式写入这两个位置:
vim -c 'let @/ = "pat" | call add(v:searchforward, "pat")' 文件路径
执行后pat会被存入搜索历史,后续按/+上下箭头可快速调出,用n/N也能直接跳转匹配项。
方法二:模拟手动搜索操作
用:execute模拟手动输入搜索命令的过程,让Vim自动将模式纳入搜索历史:
vim -c 'execute "normal /pat\<CR>"' 文件路径
其中\<CR>模拟按下回车键,执行后既会定位到第一个匹配行,也会把pat加入搜索历史,效果和+/pat/完全一致但保留了历史记录。
方法三:自定义函数复用(适合高频场景)
如果需要频繁预加载不同搜索词,可以定义一个Vim函数:
function! PreloadSearch(pattern) let @/ = a:pattern call add(v:searchforward, a:pattern) endfunction
启动时调用该函数即可:
vim -c 'call PreloadSearch("pat")' 文件路径
若需预加载反向搜索的历史,只需将v:searchforward替换为v:searchbackward。
内容的提问来源于stack exchange,提问作者William Pursell
相关产品推荐
相关产品推荐

