답변:
이것은 프로세스 필터를 통해 수행됩니다.
기본적으로 comint-output-filter-functions
포함하는 comint-watch-for-password-prompt
필터 함수가 핸들이있는.
이 텍스트 일치를 보는 경우 comint-password-prompt-regexp
다음 호출 send-invisible
사용자에게 암호를 묻는 메시지를 표시하도록.
프로세스 필터 작동 방식에 대한 자세한 내용은 C-hig (elisp)Filter Functions
편집 : 후속 조치로 M-x toggle-debug-on-quit
sudo 프롬프트 유형 C-g에서 진행 상황을 보여주는 역 추적을 얻을 수 있습니다. 예 :
Debugger entered--Lisp error: (quit)
read-string("[sudo] password for <username>: " nil t nil)
read-passwd("[sudo] password for <username>: ")
send-invisible("[sudo] password for <username>: ")
comint-watch-for-password-prompt("[sudo] password for <username>: ")
run-hook-with-args(comint-watch-for-password-prompt "[sudo] password for <username>: ")
comint-output-filter(#<process shell> "[sudo] password for <username>: ")
바이트 컴파일 된 코드가 평가되므로 출력이 최소이므로 세부 정보 comint-output-filter-functions
가 손실되지만 여전히 일반적인 상황을 볼 수 있습니다. 당신은 또한 수 M-x load-library
RET comint.el
RET컴파일되지 않은 코드를로드 한 후 더 자세한 역 추적을 얻을 수있는 전체 과정을 반복합니다.