gud-mode
получает список возможных завершений, вызывая команду complete
gdb. В вашем примере возвращенный список будет содержать следующее (при условии, что в вашей файловой системе есть только один каталог, который начинается с «/ mn»):
(run /mnt)
Первая часть каждой записи в возвращаемом списке обрезается, так что оставшийся полный список
(/mnt)
Как видите, в этой записи, возвращаемой командой gdb complete
, уже отсутствует завершающая косая черта. Ваша единственная надежда исправить это - либо исправить команду complete
gdb, либо исправить gud-mode
в Emacs, определив, что завершенное слово является каталогом, а затем добавив косую черту (и подавив автоматическая вставка пробела).
Но, конечно, вы можете просто привязать клавишу 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
по умолчанию.
person
Thomas
schedule
11.09.2012