我重新映射[[
和]]
以查找文件中的上一个和下一个模式。映射如下:
nmap [[ ?^.section <CR>
nmap ]] /?section /<CR>
问题在于,当我使用其中任何一个时,我“松开”当前的搜索模式,因此在为下一个匹配进行n
时,我会搜索下一个“部分”。
有没有办法恢复搜索模式,或[[
和]]
映射不会影响当前的搜索模式?
答案 0 :(得分:15)
您可以通过保存和恢复"/
寄存器来手动完成。但是,更好的方法是将代码移动到函数中;从函数返回会自动恢复它。引用VIM文档:
*功能搜索-撤消*
最后使用的搜索模式和重做命令“。” 不会被功能改变。这也是 意味着|:nohlsearch |的影响没有了 当函数返回时。
在.vimrc
:
function! Ayman_NextSection
/?section /
endfunction
nmap ]] call Ayman_NextSection()<CR>
希望有所帮助。
答案 1 :(得分:1)
输入“ /”或“?”后要开始搜索,只需使用上下箭头逐行显示搜索缓冲区即可。