2013-12-23 6 views
10

Я использую M-x term как свою основную оболочку в emacs. Однако, в отличие от M-x shell, view-lossage все равно сохранит мое нажатие клавиши, если будет запрошен мой пароль. После некоторого поиска, похоже, что нет способа остановить запись view-lossage при появлении запроса.Можно ли отключить просмотр-потерю?

Я хотел бы знать, можно ли полностью отключить его? Как я могу решить эту проблему?

+3

Hm. Интересно, это не ошибка Emacs (ошибка?). Вы можете попробовать «M-x report-emacs-bug», чтобы предположить, что ключи для ввода пароля не запоминаются для таких вещей, как 'view-lossage'. – Drew

ответ

3

Я определяю способ обхода проблемы, используя функцию clear-this-command-keys, упомянутую в комментарии @ Шона.

Основная идея - «очистить записанные ключи при отправке ключа», сообщив term-send-raw, я вызываю clear-this-command-keys всякий раз, когда вводится нажатие.

(defadvice term-send-raw (after clear-recorded-key activate) 
    (if (string= (kbd "RET") (this-command-keys)) 
     (clear-this-command-keys))) 
+1

Я приму свой ответ, пока нет лучшего способа справиться с этой проблемой, потому что я ожидаю обходного пути, который можно использовать в emacs, а не для изменения исходного кода. –

5

recent-keys является функцией C, поэтому похоже, что вам нужно будет перекомпилировать Emacs.

keyboard.c:

#define NUM_RECENT_KEYS (300) 

Просто измените 300 до 0, и вы сделали.

+1

Было бы полезно выяснить, как «M-x shell» предотвращает запись паролей нажатия клавиш. – zck

+3

По-видимому, это не мешает им записываться, но частично очищает запись с помощью 'clear-this-command-keys'. – Sean

Смежные вопросы