vim与gdb的完美结合

vim与gdb的完美结合

update:
Vim 8.1 自带的 TermDebug 插件 完美替代了本文中的 Conque-GDB
TermDebug 跟 gdb-dashboard 的结合方法跟本文类似(虽然感觉要多一块屏幕 233)


本文只介绍两个插件怎么结合
至于插件本身的用法,自行RTFM

Conque-GDB

一开始我是用Conque-GDB

  • 优点:和vim结合得很好,能直接用vim浏览代码,并发送指令给gdb
  • 缺点:是没有实时显示信息的窗口

(PS:这个插件的官网已经更新到了0.16
然而官方github并没有跟上,还停留在0.14
所以我自行fork并更新到了0.16,传送门:我的github

gdb-dashboard

然后wdc向我推荐了gdb-dashboard
它仅仅是个gdbinit文件

  • 优点:可以实时显示信息,且自定义性强
  • 缺点:不能和vim结合起来

结合

作为一个连浏览器都装了vim插件的vim重度患者
一番尝试之后,成功地把他们结合了起来

问题

直接生硬地装上这两个插件之后,会有兼容性问题
因为gdb-dashboard会把信息输出给Conque-GDB的窗口
而Conque-GDB又会捕获并处理窗口的输入
结果就是很卡+各种灵异

解决方法

原理

幸好,gdb-dashboard有个功能是把信息输出到其他终端
再配合可以分屏的终端,不就完美了吗?

配置

首先把gdb-dashboard的那个 .gdbinit文件改名为 .gdb-dashboard
先上这一段gdb配置

再配合这一段vim配置

再来个可以分屏的终端,比如terminator

成果

于是,在vim里编辑完代码时
首先按 <F7>调用Conque-GDB
然后按 <Ctrl+Shift+e>垂直分屏
在新的分屏里执行命令 tty,假设输出是 /dev/pts/19
(如果不是以 /dev/pts开头,则要对应修改 .gdbinit文件
如果不是以 19结尾,则要对应修改下面这条命令
在Conque-GDB的窗口里执行 sd 19
搞掂~

安装

可以自行安装这两个插件,然后按照上面的介绍自行结合
也可以直接按照下面这篇文章走

terminator、zsh、vim三剑客

Leave a Reply