새 줄을 자동으로 들여 쓰려면 어떻게해야합니까?


15

나는 다양한 수준의 들여 쓰기로 프로젝트를 진행합니다. 이러한 많은 프로젝트에서 파일이 일반적으로 구성되는 방식으로 인해 대부분의 행은 최소한 두 레벨 (예 : Java 파일의 메소드)로 들여 쓰기됩니다.

이것은 라인 라인에 새로운 라인을 생성한다는 것을 의미합니다

public void something () {

커서를 다음 줄로 가져 오면 다음과 같이 자동으로 들여 쓰기됩니다.

public void something () {
    [cursor]

줄을 바꾸기 위해 새 줄에서 탭 키를 몇 번 칠 수 있지만 더 좋은 방법이 있습니까 (자동으로 가능)?

답변:


12

autoindent옵션과 filetype플러그인 의 조합을 사용하여 수행 할 수 있습니다 .

autoindent옵션은 새 줄을 만들 때 현재 들여 쓰기를 복사합니다. 따라서 새 줄을 시작할 때 현재 들여 쓰기 수준이 4이면 커서는 다음 줄에서 같은 들여 쓰기 수준으로 이동합니다.

귀하의 ~/.vimrc파일에

set autoindent

filetype플러그인을 사용 하여 파일 유형에 따라 다음 들여 쓰기 레벨을 자동으로 결정할 수 있습니다 .

당신은 이것을 사용하여 즉시 활성화 할 수 있습니다

:filetype indent on

또는 ~/.vimrc파일에 넣을 것입니다.

filetype plugin indent on

파일 형식에 따라 들여 쓰기를 자동으로 결정합니다.


6

:set cindent( :set cin짧게) 또는 :set smartindent( 짧게)를 사용하십시오 :set si. 줄이 여는 중괄호로 끝나고을 Enter누르면 다음 줄이 자동으로 한 단계 더 들여 쓰기됩니다. (이것은 동일한 레벨 :set autoindent에서 다음 줄을 들여 쓰기하는 것보다 낫습니다 .) C와 유사한 언어에 더 잘 맞고 다른 프로그래밍 언어와 함께 사용하기에 더 다양합니다.cindentsmartindent

양 및 유형의 압입에 의해 제어되는 :set shiftwidth=…, :set tabstop=…그리고 :set expandtab.


'smartindent'더 이상 사용되지 않으므로 최선의 선택이 아닙니다. 그것은에 의해 대체되었습니다 'cindent''cinoptions'C와 같은 언어. 그러나 일반적으로 파일 형식 들여 쓰기는 'autoindent'대체 방법으로 사용 됩니다.
jamessan

@jamessan smartindent은 더 이상 사용되지 않지만 cindent주목할 가치가 있습니다. 답변을 업데이트했습니다. (감사합니다!)
200_success

editorconfig.org를 살펴 보는 것도 좋습니다 . 물론 vim (및 다른 많은 편집자)을위한 플러그인이 있으며 VCS에서 편집기 기본값을 유지하는 좋은 방법입니다.
Cyber ​​Oliveira

0

파일 맨 아래에서 다음을 사용하고 있습니다.

# vim: ts=2 sw=2 sts=2 sr noet st ai si

예를 들면 Dockerfile다음과 같습니다.

FROM centos-7
RUN ...
CMD ...

# vim: ts=2 sw=2 sts=2 sr noet st ai si

들여 쓰기 만 유지하려면 # vim: st ai si

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