내가 작업하고있는 특정 모드가 python-mode
이라고 가정 해 봅시다. 후크에 대해 다음 이맥스 수동 지정은 :이맥스에서 지정된 메이저 모드에 대한 eval-after-load 실행 순서의 실행 순서
모든 주요 모드 명령 초기화의 마지막 단계 중 하나로 모드 후크라는 일반적인 훅을 실행하기로한다. 주요 모드 규칙에서
:
이각 주요 모드가
modename-mode-hook
라는 일반 모드 훅이 있어야합니다. 주 모드 명령이 수행해야 할 마지막 작업은run-mode-hooks
입니다.
with-eval-after-load
은 코드가로드 된 후 (예 : 필수) 코드를 실행하고 필요한 경우 즉시 실행됩니다.
내 init 파일에 다음과 같은 한 : 또한 내가 지금은 파이썬 파일 버퍼를 열어 다음 이맥스를 열 가정
(with-eval-after-load 'python-mode
(setq-default python-basic-offset 7) ; setting some option
(add-to-list 'python-globals-list "console"))
을 추가 한
(add-hook 'python-mode-hook 'my-post-python)
, 로딩/실행이 무엇인지 후크와 관련된 주문 및 with-eval-after-load
? 시작시 지정한 문서에서 모드 후크가 with-eval-after-load
코드보다 먼저 실행되는 것 같습니다.
더 구체적으로 말하자면, 모드 버퍼는 현재 버퍼에 입력/작성 될 때마다 실행됩니까? (추신 : docs/manual에서 찾기가 어렵습니다. 위의 문서 중 하나를 설명하는 링크는 모두 환영합니다).
고마워요! 나는 소스를 보았고, 이것으로부터 배운 것은 모드 작성자가 스스로 후크를 실행하지 않는다는 것입니다 (그들은 단지 후크를 타입 후크로 정의합니다). 그러나이 경우 누가 후킹을 실행합니까? –
주요 모드는 일반적으로'define-derived-mode'로 정의됩니다. 자동으로 후크 변수를 만들고'run-mode-hooks '를 호출하여 mode 명령을 정의합니다. – jpkotta
OTOH가 모드 매크로를 정의하기 위해 표준 매크로를 사용하지 않는다면, 그러한 모든 예상 된 하우스 키핑을 수동으로 구현하는 것은 사용자의 책임입니다. – phils