emacs에게 C ++ 모드에서 .h 파일을 열도록 지시하는 방법은 무엇입니까?
C ++ 모드에서 .h 파일을 열려면 _emacs (Windows) 파일에 어떤 줄을 추가해야합니까? 기본값은 C 모드입니다.
이 시도:
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
.h 파일을 열 때마다 C ++ 모드가 사용됩니다.
c 모드와 c ++ 모드를 적절하게 사용하는 또 다른 방법은 모드 를 설정 하기 위해 디렉토리 로컬 변수 를 사용하는 것입니다.
디렉토리 변수는 모드가 1 로 설정된 후에 평가 되므로 실제로 .dir-locals.el
다음을 포함하는 C ++ 프로젝트 용 파일을 작성할 수 있습니다 .
((c-mode . ((mode . c++))))
그리고 Emacs c++-mode
는 처음에로 설정했을 때마다 모드를로 변경합니다 c-mode
.
C 및 C ++ 프로젝트를 혼합하여 작업하는 경우 프로젝트별로 매우 사소한 솔루션이됩니다.
물론 대부분의 프로젝트가 C ++ 인 경우 c ++-mode를 기본값 2 로 설정 한 다음이 접근 방식을 반대로 사용하여 적절한 경우 c- 모드로 전환 할 수 있습니다.
1 normal-mode
통화 (set-auto-mode)
및 (hack-local-variables)
그 순서. 참고 항목 : 주 모드 후크에서 디렉터리 로컬 변수에 액세스하려면 어떻게해야합니까?
2 이렇게하려면
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
당신에게 .emacs
파일 열기 이는 .h
기본적으로 C ++ 모드에서 파일.
모든 .h 파일에이를 적용하지 않으려면 C ++ 헤더 파일의 맨 아래에 다음을 추가 할 수 있습니다.
// Local Variables:
// mode: c++
// End:
이것은 파일 단위로 설정하려는 Emacs 변수에 대해 작동합니다. Emacs는 선행 문자를 무시하므로 파일 유형에 적합한 주석 문자를 사용하십시오.
분명히 파일 맨 위에 이것을 넣을 수도 있습니다.
// -*-c++-*-
Emacs에게 그것이 C ++ 파일임을 알리기 위해.
나는 꽤 자주 바닐라 Emacs로 끝나고 어떤 식 으로든 Emacs를 구성하지 않고도 작동하기 때문에 이것을 사용합니다.
C와 C ++를 정기적으로 사용하기 때문에 .h 파일이 C인지 C ++인지를 "추측"하기 위해이 함수를 작성했습니다.
;; function decides whether .h file is C or C++ header, sets C++ by
;; default because there's more chance of there being a .h without a
;; .cc than a .h without a .c (ie. for C++ template files)
(defun c-c++-header ()
"sets either c-mode or c++-mode, whichever is appropriate for
header"
(interactive)
(let ((c-file (concat (substring (buffer-file-name) 0 -1) "c")))
(if (file-exists-p c-file)
(c-mode)
(c++-mode))))
(add-to-list 'auto-mode-alist '("\\.h\\'" . c-c++-header))
그래도 작동하지 않으면 C 모드와 C ++ 모드 사이를 전환하는 키를 설정했습니다.
;; and if that doesn't work, a function to toggle between c-mode and
;; c++-mode
(defun c-c++-toggle ()
"toggles between c-mode and c++-mode"
(interactive)
(cond ((string= major-mode "c-mode")
(c++-mode))
((string= major-mode "c++-mode")
(c-mode))))
완벽하지는 않습니다. 헤더가 C인지 C ++인지 결정하는 데 더 나은 휴리스틱이있을 수 있지만 저에게 적합합니다.
이 질문에 대한 답이 이미 적절하다고 봅니다. 기묘한.
당신은 이것을 원합니다 :
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
참고 URL : https://stackoverflow.com/questions/3312114/how-to-tell-emacs-to-open-h-file-in-c-mode
'Program Tip' 카테고리의 다른 글
C ++의 함수 이름 : 대문자 사용 여부? (0) | 2020.11.26 |
---|---|
C # 일반 사전에서 값 필터링 (0) | 2020.11.26 |
jQuery "읽기 전용 아님"선택기 (0) | 2020.11.26 |
.each () 집합의 마지막 요소 (0) | 2020.11.26 |
대소 문자를 구분하지 않는 배열 검색 (0) | 2020.11.26 |