2013-12-23 139 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

相關問題