쉘 스크립트 함수에 들여 쓰기 설정


11

sh-mode(bash 하위 모드) 에서 새 기능을 시작하기 위해 들여 쓰기 당 공백 수를 설정하려고합니다 . 설정을 시도했습니다.

'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)

(로 표시 custom-set-variables에서 .emacs)뿐만 아니라 일부 다른,하지만 그들 중 어느 것도 효과가 없었습니다!


변수를 설정하는 방법은 via가 아닙니다 custom-set-variables(Customize에서 내부적으로 사용하지만 직접 사용하지는 않습니다). 와 같은 것을 더 잘 사용하십시오 (setq sh-basic-offset 2).
Stefan

답변:


7

sh-basic-offset필요한 들여 쓰기로 설정 하는 것이 필요하지만 내가 알지 못한 것은 사용자 정의가 적용되기 전에 모든 쉘 스크립트 파일을 닫았다가 다시 열어야한다는 것입니다. 나는 이맥스에서 전에 이것을해야했던 것을 기억할 수 없다.


1
를 변경 한 후에 .emacs는 emacs를 종료했다가 다시 시작하거나 M-x load-file다시로드해야 .emacs합니다. 편집기에서 연 파일을 다시로드 C-x C-v RETURN하려면 "다시 방문" 한다고 말할 수 있습니다 .
Alex L

이 경우 @AlexL로드 파일이 작동하지 않습니다. 내가 말했듯이, 이것은 매우 이례적입니다. 일반적으로 단순히 변수를 사용자 정의하는 것으로 충분합니다.
Robin Green

흠 ... 왜 이것이 @ robin-green인지 아십니까? 궁금해.
Alex L

M-x set-variable작업중인 버퍼에 대해이를 변경하려는 경우 에도 사용할 수 있습니다 .
kotakotakota

1

내가 설정 기본 오프셋 2하지만이 작동하지 않았다, 내가 다시 누르면 갔다 C-h v sh-<TAB>하고 있다는 것을 깨달았다 sh-indentation2 및 모든 것에 변수가 지금은 매력처럼 작동에 보인다 I 세트.


"set-basic-offset"이 의미하는 바를 명확히하고, " 변수를 2로 설정 한" 방법 을 정확하게 설명 하십시오.
Stefan

초과 및 미만 문자 사이에 배치되었으므로 포럼에서 탭이 생략되었습니다. "v 탭 누르기"자동 완성에 변수 목록이 표시됩니다.
Albaro Pereyra

마크 업을 수정했지만 귀하의 의견에 "set-basic-offset"의 의미 나 "변수를 2로 설정 한 방법 "에 대해서는 설명하지 않습니다 .
Stefan

이 변수는 26.1부터 사용되지 않으므로 sh-basic-offset대신 사용하십시오.
goetzc

0

나는 Albaro와 동일한 경험을 가졌습니다. sh-basic-offset을 설정해도 효과는 없지만 sh-indentation은 예상대로 작동합니다.

내 경우에는 (setq sh-basic-offset 2)예를 들어 emacs로 평가 했습니다. Mx 평가 식을 통해. 나는 달리고있다 GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian. 내 주요 모드는 쉘 스크립트입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.