(반대로,이 질문은 데몬 모드에서 시작하고 대화식 대화 상자를 억제하는 방법 과 동일하지 않습니다 . 제출자에 의해 해당 질문에 "응답"되어 특정 프롬프트가 나타나는 원인을 제거했습니다.)
아직 존재하지 않는 미니 버퍼에 표시되는 프롬프트에 대한 응답을 영원히 기다리지 않는 일반적인 방법 이 있는지 알고 싶습니다 emacs --daemon
.
Emacs가 시작 순서를 마칠 때까지 서버가 시작되지 않기 때문에이 프롬프트에 응답하기 위해 emacsclient에 연결할 수 없습니다. (이것은 ALTERNATE_EDITOR를 빈 문자열로 설정하여 emacsclient
서버가 새 데몬을 시작할 수 없다는 것을 의미하면 여러 Emacs 데몬이 모두 멈추고 대기 할 수 있습니다.) killall emacs
문제를 해결 해야합니다. 계속하기 전에.
(데몬 모드가 아닌 모드에서 Emacs를 시작하고 요청한 내용을 확인하여) 시작할 때 프롬프트를 표시하는 각각의 일로 whack-a-mole을 재생할 수 있지만 다음 데몬을 멈출 수 없기 때문에 해결책 이 아닙니다. 새로운 이유 때문에 스타트 업에 매달리지 않아도됩니다.
예를 들어 : 시스템 재부팅 또는 Emacs 크래시 이후 첫 번째 재부팅 후 Emacs가 기능 상실 Emacs에서 잠금 파일을 훔치는 것이 좋은지 알고 싶을 때 발생하는 일반적인 이유입니다. 프롬프트가 항상 "예"라고 상호 작용하지 않고 응답하도록 조언을 작성하여 문제를 해결할 수 있습니다. 그러나 이전 세션 저장에서 열린 파일 중 하나는 sudo 또는 SSH 비밀번호가 필요한 TRAMP 파일이므로 디먼이 비밀번호 프롬프트에서 대기 중입니다. 따라서 문제가 발생한 파일 을 제거하기 위해 세션 파일 ( vi
또는 emacs -q
!로)을 수동으로 편집하여 문제를 해결 하지만 다음 번에는 발생하지 않습니다.
따라서 시작시 세션 자동로드를 중지하고 첫 번째 emacsclient에서 수동으로 실행해야하는 명령으로 변경할 수 있습니다. 그러나 백그라운드에서 내 세션을로드하지 않으므로 사용할 준비가 될 때까지 준비가되면 데몬의 전체 목적이 손실됩니다!
그래서 내가 원하는 것은 :
- (최상의) 나머지 초기화를 완료하면서 emacsclient를 열 때까지 미니 버퍼 프롬프트를 연기하는 방법.
- (OK) 위의 설명과 같이 이미 조언하지 않은 모든 미니 버퍼 프롬프트를 만드는 방법
no
은 emacsclient가 실행되고 있지 않으면 반환 됩니다. TRAMP 버퍼가 작동하는 한 오류가 발생하여 살 수 있습니다.
이러한 목표 중 하나를 달성 할 수있는 방법이 있습니까?
(read-desktop)
다음 실행하기 전에 emacs --daemon
정수를 .emacs.desktop.lock 에 넣어 가짜 잠금 파일을 만드는 것입니다 ( 불행히도 해당 파일 을 넣을 위치는 구성에 따라 다릅니다) 그러나 아마 당신의 homedir 또는 ~ / .emacs.d / 일 것 입니다