注意:我在这里可能完全错误地使用了“窗口”和“缓冲区”。
当在调用堆栈上跳转/下跳转时,希望在不同的窗口中同时查看调用站点和被调用函数。
我知道我可以随时打开新的跳转到标签时预览窗口 - 但我发现这会很快创建很多窗口。
我想我想做的是:
- 指定一个现有窗口来打开标签(例如左侧窗口、右侧窗口等)
- 通过在另一个现有窗口中显示相同的缓冲区,只需“保存”一个缓冲区即可。
我也愿意接受更好的想法
谢谢
答案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>