여기에서 emacs를 비활성화하는 방법 문서 완성

여기에서 emacs를 비활성화하는 방법 문서 완성

emacs를 사용하여 bash 스크립트 파일을 편집하고 를 입력하려고 할 때 다음 예와 같이 <<<두 번째 emacs에 문서 템플릿을 삽입하십시오 .<

<<EOF

EOF

텍스트를 입력할 때 이는 원하는 출력이 아닙니다 <<<.

현재는 < < <공백을 입력한 후 없애는 방식을 사용하고 있지만 직접 입력하는 것을 선호합니다.

답변1

Tom의 사용자 정의 기능에는 실제로 키 리바인딩이 필요하지 않습니다 my-disable-here-document. 이 기능은 다음과 같은 방법으로 활성화 및 비활성화할 수 있습니다 sh-electric-here-document-mode.

(add-hook 'sh-mode-hook
          (lambda ()
            (sh-electric-here-document-mode -1)))

(또한 활성 버퍼를 전환하여 M-x sh-electric-here-document-mode.)

답변2

<Bash 모드로 바인딩 self-insert-command하면 문자만 삽입됩니다.

기본적으로 bash 모드로 바인딩되며 sh-maybe-here-document함수가 자동 삽입을 수행합니다.

키를 반송하는 한 가지 방법은 다음과 같습니다.

(add-hook 'sh-set-shell-hook 'my-disable-here-document)

(defun my-disable-here-document ()
  (local-set-key "<" 'self-insert-command))

답변3

비활성화하려는 유일한 이유인 경우여기 - 문서동작은 삽입을 방해한다는 것입니다.여기에 있는 문자열<<< 그러면 C-<포함 함수에 대한 바인딩이 (insert "<<<")작동하고 여전히 자동을 허용합니다.여기 - 문서주형

(defun my-here-string() 
  "Insert <<< (eg. for a bash here-string)" 
  (interactive)
  (insert "<<<"))
(global-set-key (kbd  "C-<") 'my-here-string)

답변4

유형< C-q < <

관련 정보