2013-12-23 35 views
10

我使用M-x term作为我在emacs中的主要shell。但是,与M-x shell不同,如果提示我的密码,view-lossage仍将存储我的按键。经过一番搜索之后,看起来好像没有办法在出现提示时停止view-lossage录制。是否可以禁用视图损失?

我想知道,是否有可能完全禁用它?我该如何解决这个问题?

+3

嗯。我想知道这是不是Emacs错误(misfeature)。您可以尝试使用'M-x report-emacs-bug'来暗示密码输入的密钥不会被记住,例如'view-lossage'。 – Drew

回答

3

我想出一种方法来解决问题,使用@ Sean的评论中提到的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

相关问题