Tôi muốn bỏ qua hoàn toàn hỗ trợ hoàn thành chế độ comint, thay vào đó dựa vào quy trình cấp dưới để thực hiện cho tôi. Cụ thể, nếu tôi đang chạy:
- emacs
- chế độ vỏ
- bash
- chế độ vỏ
Sau đó tôi muốn TAB được chuyển qua quy trình bash và mở rộng bởi nó.
Nếu tôi đang chạy:
- emacs
- chế độ vỏ
- bash
- ps
- bash
- chế độ vỏ
Sau đó tôi muốn TAB được xử lý bởi psql.
Tôi đã thử điều này trong hook-mode-hook nhưng không có kết quả:
(define-key shell-mode-map "\t" 'self-insert-command)
Khi điều này được đặt, TAB Phím chèn một tab bằng chữ trên dòng lệnh, điều này hoàn toàn không hữu ích với tôi.
Tôi cũng đã thử điều này, nhưng khi tôi nhấn TAB chẳng có gì xảy ra:
(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)
Tôi có thể làm cái này như thế nào?