나는 Emacs에서 아주 간단한 일을 하고 싶습니다. TAB 키를 누르면 공백이 두 개 삽입되도록 설정하고 싶습니다. 딱 이것. 그것이 내가 바라는 전부입니다. 나는 몇 년 동안 이 일을 하려고 노력해 왔지만 제대로 작동하지 못했습니다. 모든 파일 형식에서 다양한 방식으로 폭발합니다. HTML 파일? 공백 4개를 선택하려면 무작위로 선택하고, 들여쓰기를 위해 이전 줄로 이동하려면 Tab 키를 누르세요. 파이썬 파일? 공백 4개만 입력하면 모든 설정을 무시하겠습니다. 또한 이전에 작동하던 달의 위상에 따라 무작위로 작동을 멈추는 것 같습니다.
내 .emacs에서:
(setq indent-tabs-mode nil)
(setq tab-width 2)
이게 효과가 있겠지? 아니, 아니. emacs에는 내가 말한 내용을 완전히 무시하는 모든 확장명에 대해 마법의 요정 "파일 모드"가 있는 것 같습니다. 그렇다면 이 마법의 요정 구성을 찾아 모든 파일 형식에 대해 재정의해야 합니까? 이 간단한 일을 작동시키려면 어떻게 해야 할까요? 하프.
답변1
Tab모든 언어에는 고유한 들여쓰기 규칙이 있으므로 쉽게 접근할 수 있는 키를 사용하여 항상 동일한 효과를 얻는 것은 그다지 유용하지 않습니다. 그렇기 때문에 많은메인 모드1 키 바인딩을 재정의합니다.
특정 모드의 설정을 무시하려면 해당 모드를 해당 키맵에 바인딩하세요.
(defun insert-two-spaces (&optional count)
(interactive "*p")
(insert (make-string (* 2 count) ?\ )))
(add-hook 'python-mode-hook '(local-set-key "\t" 'insert-two-spaces))
모든 위치에 대한 설정을 재정의하려면 항상 켜짐을 정의하면 됩니다.작은 모드. 보다엘립 매뉴얼보조 모드를 정의하는 방법을 알아보세요.
(define-minor-mode magnus-minor-mode
"Override the binding of the TAB key."
:keymap '(([?\t] . insert-two-spaces))
:global t)
(magnus-minor-mode 1)
1 "마법의 요정 파일 모드"라고 부르는 것이 기본 모드입니다. 자동으로 작업을 수행하는 편집자를 좋아하지 않는다면 추천합니다.나노미터.