vim:将缓冲区复制到窗口

vim:将缓冲区复制到窗口

注意:我在这里可能完全错误地使用了“窗口”和“缓冲区”。

当在调用堆栈上跳转/下跳转时,希望在不同的窗口中同时查看调用站点和被调用函数。

我知道我可以随时打开新的跳转到标签时预览窗口 - 但我发现这会很快创建很多窗口。

我想我想做的是:

  • 指定一个现有窗口来打开标签(例如左侧窗口、右侧窗口等)
  • 通过在另一个现有窗口中显示相同的缓冲区,只需“保存”一个缓冲区即可。

我也愿意接受更好的想法

谢谢

答案1

对于关注标签,你基本上有三个选择:

  • 在同一个窗口中,替换当前缓冲区:tag
  • 在分割窗口中:stag;这将创建许多新窗口,您需要清理/最小化
  • 在预览窗口中:ptag;每个标签页只有一个预览窗口,因此它会为您自动管理窗口;但是,如果您进一步导航里面预览窗口,进一步的标签跳转实际上变成了同一窗口,即:ptag相当于:tag

您可以从那里构建您的工作流程。我在写这篇文章时想到的一个想法是,在正常窗口中:AlternateTag执行自定义命令:ptag,但将预览窗口重新分配给另一个已经在预览窗口中的窗口。这将允许您在两个窗口之间切换以进行标签查找。

:command! -bar -count -bang -complete=tag -nargs=? AlternateTag if &previewwindow && winnr('$') && winnr('#') > 0 | setlocal nopreviewwindow | call setwinvar(winnr('#'), '&previewwindow', 1) | endif | <count>ptag <args>

相关内容