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