필자는 편집기 구성과 관련하여 기술이없는 Emacs 사용자입니다.haskell-indentation-mode over haskell-indentation-mode haskell-mode 2.7에서 강제?
- 들여 쓰기 내가 아주 싫어하는 방법으로, 어떻게 든 다른이다 : 나는 2.7 haskell-mode 2.4에서 업그레이드 한 후, 나는 두 가지 사항을 변경 나타났습니다. 나는 그것이 무엇인지 내 손가락을 넣을 수는 없다.
- 더 중요하게 : 큐어 모드가 활성화되어 있고 텍스트 블록을 강조 표시 한 경우 백 스페이스/삭제는 이 아니며 블록 전체를 삭제하고 내 마커의 이전 문자 만 삭제합니다.
haskell-mode 2.7은 마이너 모드 인 haskell-indentation-mode를 기본적으로 사용하는 반면, 2.4 동작은 haskell-indent-mode의 형태로 보존되어 있습니다. 먼저 전자를 끄고 후자를 끄면 원하는 동작이 복원됩니다 (예 : 들여 쓰기가 이전처럼 느껴지고 백 스페이스/삭제가 강조 표시된 블록을 삭제함).
그러나 .hs 접미사가있는 파일을 열 때마다이 작업이 자동으로 수행 될 수는 없습니다. 나는 다양한
(remove-hook 'haskell-mode-hook 'turn-on-haskell-indentation-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent-mode)
를 닮은 사물과 그것의 좋아하는을 시도했지만, 나도 표준 모드 또는 들여 쓰기 및 문서없이 일반 하스켈 모드와 끝까지.
아이디어가 있으십니까?
솔루션는 (감사 nominolo하기) :
(add-hook 'haskell-mode-hook 'my-haskell-mode-hook)
(defun my-haskell-mode-hook()
(haskell-indentation-mode -1) ;; turn off, just to be sure
(haskell-indent-mode 1) ;; turn on indent-mode
;; further customisations go here. For example:
(setq locale-coding-system 'utf-8)
(flyspell-prog-mode) ;; spell-checking in comments and strings
;; etc.
)
당신은 또한 거기에 익명 함수를 스틱 수 :
(remove-hook 'haskell-mode-hook 'turn-on-haskell-indent)
(remove-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
(add-hook 'haskell-mode-hook 'my-haskell-mode-hook)
(defun my-haskell-mode-hook()
(haskell-indentation-mode -1) ;; turn off, just to be sure
(haskell-indent-mode 1) ;; turn on indent-mode
)
위대한 답변; 이것은 이전에 가지고 있던 무작위'add-hook' 패턴보다 훨씬 낫습니다. 감사! – acfoltzer
슬프게도, 이것은 나에게 도움이되지 않습니다. 내 .emacs에 부여한 코드를 추가했지만, .hs haskell-indentation-mode를 열면 여전히 켜져 있습니다. 'M-x haskell-indentation-mode'를 실행하면 예상대로 꺼집니다. – gspr
@gspr : 다른 후크가 계속있을 수도 있습니다. 활성 후크를 보려면'C -h v haskell-mode-hook'을 사용하십시오. 또는 실제로 세 개의 들여 쓰기 모드가있는 것 같습니다. 그래서 다른 모드를 꺼야 할 수도 있습니다. – nominolo