termdebug vim 中的初始窗口拆分

Sum*_*mar 7 vim gdb vim-plugin

我是 vim 的新手,最近才知道我们可以使用 Termdebug 来调试带有 gdb 的 vim 中的代码。我非常喜欢这个,因为我正在寻找与 gdb 良好的 vim 集成。当我启动 Termdebug 窗口时,在 gdb 窗口、程序窗口和源代码窗口中水平分割。我喜欢将源代码窗口垂直拆分到右侧。为此,目前我将焦点移到源代码窗口并按 Ctrl+w & L。

拆分前:

在此处输入图片说明

拆分后:

在此处输入图片说明

每次启动 Termdebug 时我都必须这样做。有没有办法 .vimrc 以便当我启动 Termdebug 时,源代码窗口会自动向右拆分。我在这里看到建议使用:

let g:termdebug_wide = 163
Run Code Online (Sandbox Code Playgroud)

这会自动拆分,但在调试期间突出显示行有一些问题,如下图所示:

在此处输入图片说明

请建议我如何更改 .vimrc

Dan*_* S. 12

这种布局(右侧是编辑器,左侧是水平拆分的两个 GDB 窗口)可以通过g:termdebug_wide.vimrc.

let g:termdebug_wide=1
Run Code Online (Sandbox Code Playgroud)

详情请参阅:help termdebug_wide

我在termdebug去年(2019 年 5 月)写了一篇博文,最近(2020 年 4 月)在评论中解决了同样的问题:https : //www.dannyadam.com/blog/2019/05/debugging-in-vim/#评论-251004


Sum*_*mar 6

最后,我找到了如何通过修改 vimrc 来做到这一点。为了方便起见,我将整个按键序列映射到 F6。

autocmd filetype cpp nnoremap <F6> :Termdebug %:r<CR><c-w>2j<c-w>L
Run Code Online (Sandbox Code Playgroud)

我在 vimrc 中添加了上面的行。现在,当我按 F6 时,会自动打开带有源代码窗口的窗口,就像上面的问题一样,没有奇怪的行为。

解释

  • :Termdebug %:r<CR> 这将打开 Termdebug,其中所有 3 个窗口都是水平的。
  • <c-w>2j这会将焦点移至源代码窗口。
  • <c-w>L这会将源代码窗口移动到右侧。

注意:如果您想将焦点重新放在 gdb 窗口上,可以<c-w>h在上一行的末尾添加。