VIM:在多个分屏窗口中搜索

12

我想在VIM的多个分屏窗口中搜索

步骤:

  1. 在一个分屏窗口中使用'*'高亮光标下的单词
  2. 按 'n' 跳转到所有分屏窗口中的下一个出现位置,无需通过 Ctrl-w-w 切换窗口

这个能行吗?

2个回答

7
nnoremap <silent> n :exe (search(@/, 'nW') == 0 ? "normal \<lt>c-w>\<lt>c-w>ggn" : "normal! n")<cr>
nnoremap <silent> N :exe (search(@/, 'bnW') == 0 ? "normal \<lt>c-w>\<lt>c-w>G$N" : "normal! N")<cr>

这回答了问题,但我觉得它并不符合vim的精神。我更喜欢使用quickfix窗口的感觉。
在使用*后执行以下操作:
:cexpr []|exe "windo vimgrepadd//j %"|copen

现在你可以使用:cn:cp来浏览搜索结果。我个人使用Tim Pope的unimpaired.vim,它提供了很好的映射方式,如[q]q
:h search(
:h quickfix
:h cexpr
:h windo
:h vimgrepadd
:h copen
:h cn

0

你可以为此创建一个宏,例如:qq*CTRLwCTRLwnCTRLwCTRLwq

现在你可以按@q进行搜索。并且您可以为此设置一个map

:nmap YOUR_FAVOURITE_KEY @q

如果搜索未找到,该宏将失败并停止执行。 - GuilPejon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接