gud-mode
通过调用gdb的complete
命令检索可能的完成列表。在你的榜样,返回的列表将包含以下(假设在你的文件系统中只有一个目录下,以“/ MN”开头):
(run /mnt)
返回列表中的每个条目的第一部分被切断关,使剩余的完整列表是
(/mnt)
正如你所看到的,通过gdb的complete
命令返回该项已经缺少了结尾的斜线。你唯一希望解决的办法是修补gdb的complete
命令,或修补Emacs的gud-mode
,通过某种方式检测完成的单词是一个目录,然后附加一个斜杠(并抑制自动插入空间字符)。
当然不过,你可以简单地绑定TAB键到不同的完成功能,可能一个倒在默认gud-gdb-complete-command
,但也许做了别样的完成要求时。
对于这一点,尽量把你的.emacs文件如下:
(defun my-gud-gdb-setup()
(define-key (current-local-map) "\t" 'my-gud-gdb-complete-command))
(defun my-gud-gdb-complete-command (&optional COMMAND PREDICATE FLAGS)
(interactive)
(unless (comint-dynamic-complete-filename)
(gud-gdb-complete-command COMMAND PREDICATE FLAGS)))
(add-hook 'gdb-mode-hook 'my-gud-gdb-setup)
此代码绑定一个新功能,它首先试图扩大现有的单词作为文件TAB键,只有如果失败则调用默认的gud-gdb-complete-command
。
这真的很烦我 - 以下将尝试下面的修复 – bph