Я хочу полностью обойти поддержку завершения режима comint, вместо этого полагаясь на подчиненный процесс, чтобы сделать это для меня. В частности, если я бегу:
- Emacs
- Оболочка режима
- удар
- Оболочка режима
Затем я хочу, чтобы TAB
передавался процессу bash и расширялся им.
Если я бегу:
- Emacs
- Оболочка режима
- удар
- PSQL
- удар
- Оболочка режима
Тогда я бы хотел, чтобы TAB
обрабатывался psql.
Я пробовал это в shell-mode-hook, но безрезультатно:
(define-key shell-mode-map "\t" 'self-insert-command)
Когда это установлено, клавиша TAB
вставляет буквенную вкладку в командной строке, что совершенно не полезно для меня.
Я также попробовал это, но когда я нажимаю TAB
ничего не происходит:
(defun cr/comint-send-tab ()
"Send a tab character to the current buffer's process"
(interactive)
(comint-send-input t t)
(process-send-string (current-buffer) "\t"))
(define-key shell-mode-map "\t" 'cr/comint-send-tab)
Как я могу это сделать?