始终执行l
和l -
不方便,并且错过了语法突出显示和跳转到定义等功能。
如何在当前行上运行一个打开编辑器(可能是像Vim这样的CLI编辑器)的外部命令?
我已经知道在https://vi.stackexchange.com/questions/2046/how-can-i-integrate-gdb-with-vim或Eclipse中提到的编辑器插件集成,但是从GDB打开编辑器的优点是它应该适用于任何编辑器,并且更轻量级,因此不太可能破坏。成本更差,例如,不能从编辑器设置断点,但我很好。
答案 0 :(得分:5)
edit
命令,没有参数,可以做你想要的。
答案 1 :(得分:3)
自动居中行的方法
这个Python GDB脚本与edit
类似,但它也将Vim集中在当前行上:
class Vim(gdb.Command):
"""
Open current file in vim at a the current line.
"""
def __init__(self):
super().__init__('vim', gdb.COMMAND_FILES)
def invoke(self, argument, from_tty):
sal = gdb.selected_frame().find_sal()
call(['vim', sal.symtab.fullname(), '+{}'.format(sal.line), '+normal! zz'])
Vim()
Vim CLI参数解释如下:How can I open vim with a particular line number at the top?
sal
GDB Python对象记录在:https://sourceware.org/gdb/onlinedocs/gdb/Symbol-Tables-In-Python.html#Symbol-Tables-In-Python
很遗憾我无法正确使用vim --remote
,因为我无法通过当前行:How to send commands to gvim when using --remote?