2011-07-27 1 views
3

들여 쓰기 모드를 모든 모드에 대해 4 자 너비로 탭에만 설정하려고합니다. 이것은 사소한 것처럼 보이지만 성공하지 못했습니다. 모든 모드에는 고유 한 변수와 옵션이있는 것 같습니다. 나는 Perl과 R에 성공하지 않고이 작업을 시도했다. 근무 한 적이없는 것들 :이맥스 들여 쓰기 레벨 전역 오버라이드

(setq-default tab-width 4) 
(setq standard-indent 4) 
(setq-default r-indent-level 4) 
(setq perl-indent-level 4) 

(SETQ의 C-- 기본 오프셋 4) C 모드하지만 아무것도 작동합니다. 나는 무언가를 잊고 있니? 잘못된 변수를 설정 했습니까? 그런 옵션이 없습니까?

저는 매일 다양한 언어 (R, Perl, sh, C/C++ 등)로 작업합니다. 모든 언어에서 동일한 들여 쓰기를 사용하고 있으므로 들여 쓰기 수준과 스타일이 모든 모드에서 일관되도록 설정할 수있는 전역 대체 변수가 있습니까? 그렇지 않은 경우 시작할 때 각 모드에 대해 설정하는 방법이 있습니까? 다른 모든 것이 실패하면,이를 수행하는 elisp 스크립트가 있어야합니다.

이맥스 (23)


사용

해결 : 나는 이러한 글로벌 재정이 없기 때문에 개별적으로 각 모드에 대한 변수를 설정했다. ~/.emacs 파일에 다음 명령문을 넣어 시작할 때 이맥스를 구성 할 수 있습니다.

R 모드는 ESS 패키지에서옵니다. 당신은 단지 각 모드의 오른쪽 변수를 검색 할 것 같은 (setq cperl-indent-level 4)

이 보이는 CPerl 모드에서 (setq ess-indent-level 4)

: 문서를 읽고, 나는이를 발견했다.

답변

5

이맥스의 들여 쓰기는 실제로 "사소한 일"이 아닙니다. 당신은 이맥스 위키에서 그것에 대해 모든 것을 읽을 수 있습니다 :
http://www.emacswiki.org/emacs/CategoryIndentation

주요 모드들을 소개 들여 쓰기 관련 변수의 몇 가지, 당신이 발견 한대로, 원하는 및 그러나 들여 쓰기를 구현하는 무료입니다; 따라서 모든 가능한 주요 모드에 영향을 미치도록 보장되는 전역 들여 쓰기 구성은 없습니다 (실제로는 특정 변수 이 관례에 따라 완전 표준 인 임).

그렇지 않은 경우 시작시 각 모드에 대해 설정하는 방법이 있습니까?

물론. 가장 쉬운 방법은 defcustom 정의에만 변수가 표시되지만, MXcustomizeRET 인터페이스를 사용하여 값 및 기본값을 구성하는 것입니다, 그래서 반드시 종합 아니다 (하지만 여전히 사용 가능한 몇 가지를 탐색 매우 유용 할 수 있습니다 설정 값을 실제로 사용하지 않아도 값 설정).

초기화 파일의 설정 값 (또는 자동 버퍼 로컬 변수의 경우 기본값)은 setqsetq-default으로 초기화 파일에 포함 된 것처럼 잘되어 있습니다.

더 많은 제어가 필요하면 모드 연결을 사용할 수 있습니다. 거의 모든 모드는 버퍼에서 초기화 된 후 (mode-name)-hook 변수에 할당 된 함수 목록을 실행하므로 모든 모드 별 사용자 정의를 elisp 함수에 작성하고 init 파일의 해당 후크 목록에 추가 할 수 있습니다. 이맥스에서 나를 위해

예컨대 :

(defun my-c-mode-config() 
    (whitespace-mode 1) 
    (setq indent-tabs-mode t 
     tab-width  4 
     c-basic-offset 4)) 

(add-hook 'c-mode-hook 'my-c-mode-config) 
4

변수 standard-indent을 사용하십시오. 시작 파일에 설정하거나 사용자 정의 할 수 있습니다. 들여 쓰기 그룹에 있습니다. M-x customize을 수행 한 다음 편집을 선택한 다음 들여 쓰기를 선택하십시오. 또는 M-x customize-group indent을 입력하십시오.

공백 대신 탭을 들여 쓰면,해야 할 일은 indent-tabs-mode에서 t까지만 설정하면됩니다. 같은 방식으로 사용자 정의 할 수 있습니다.

1

(setq default-tab-width 2) 작품 24