在 vim 中,有没有办法在不同的窗口中搜索单词?

在 vim 中,有没有办法在不同的窗口中搜索单词?

我正在处理一个文件,其中的定义和对这些定义的引用位于文件的不同部分。我在一个拆分窗口中查看该文件 - 一半查看定义,另一半查看引用,这样我就可以更新两者,然后轻松转到下一个定义。

我希望能够在一个窗格中查找单词,然后在另一个窗格中搜索该单词。这很像在命令模式下将光标放在单词上,然后按 *,只是当前窗格不应移动 - 另一个窗格应该移动。

有没有办法在 vim 中做到这一点?

或者,有人可以建议一种不同的工作方式来让这变得更容易吗?

答案1

这一页包含与您要查找的内容类似的代码片段。它获取当前单词(就像您按下了 一样*),切换到另一个窗口并使用 进行搜索n

:nnoremap <Leader>w :let @/=expand("<cword>")<Bar>wincmd w<Bar>normal n<CR>

您可以将<Leader>w部分更改为您喜欢的任意组合(甚至可以更改为类似于的组合*,从而取代其默认功能)。

答案2

我发现 Vim 的选项卡比分割窗口更方便。这些选项卡在控制台版本和 GUI 中都可用。您可能需要不止一个最低版本的 Vim 才能使用该功能(特别是,需要启用“+windows”编译选项)。

使用:tabnew:tabnew <file>打开新选项卡。使用:tabnext(快捷方式:gt)或:tabprev(快捷方式:gT)移动到下一个/上一个选项卡。使用:close关闭当前选项卡窗口。

:help tabpage.txt参阅基本参考。

至于如何在前一个选项卡中执行搜索命令并让后一个选项卡移动的问题,我不确定——Leader_Fire 的答案可能有效,但可能需要调整。

相关内容