Vim에서 탭 크기를 어떻게 변경합니까?


172

CSS에 선택기를 추가 할 때마다을 눌러 Enter속성을 정의합니다.

#selector {
        property: value;
}

(8 칸 탭)

Vim을 다음과 같이 구성하려면 어떻게해야합니까?

#selector {
    property: value;
}

(4 칸 탭)


4
너비가 4 칸인 탭 하나를 원하십니까? 네 칸? 또는 1 칸 너비의 탭 4 개? 그것들은 서로 다르며 명확하지 않습니다. 어쨌든 : he ts, : he sw 및 : he expandt
abeyer를 읽으십시오. abeyer

답변:


102

zoul의 답변을 확장 :

특정 파일 형식을 편집 할 때 특정 설정을 사용하도록 Vim을 설정하려면 자동 명령을 사용해야합니다.

autocmd Filetype css setlocal tabstop=4

이렇게하면 탭이 4 개의 공백으로 표시됩니다. 설정 expandtab하면 tabstop탭을 누를 때 Vim이 실제로 공백 (으로 제어되는 수 )을 삽입합니다 . softtabstop백 스페이스를 올바르게 작동시키는 데 사용할 수 있습니다 (즉, 항상 한 번에 한 문자 씩 삭제하는 대신 탭을 사용해야 할 경우 들여 쓰기를 줄임).

일을 설정하는 방법에 관해서는 완벽하게 교육을 결정하려면, 당신은에 빔의 문서를 읽을해야합니다 tabstop, shiftwidth, softtabstopexpandtab. 가장 흥미로운 비트는 expandtab( :help 'expandtab)에 있습니다.

Vim에서 탭을 사용하는 4 가지 주요 방법이 있습니다 :

  1. 항상 'tabstop'을 8로 유지하고 'softtabstop'및 'shiftwidth'를 4 (또는 3 또는 원하는 것)로 설정하고 'noexpandtab'을 사용하십시오. 그런 다음 Vim은 탭과 공백을 혼합하여 사용하지만 입력하면 4 자 또는 3 자마다 탭이 나타나는 것처럼 동작합니다.

  2. 'tabstop'및 'shiftwidth'를 원하는 것으로 설정하고 'expandtab'을 사용하십시오. 이런 식으로 항상 공백을 삽입합니다. 'tabstop'이 변경되면 서식이 엉망이되지 않습니다.

  3. 'tabstop'및 'shiftwidth'를 원하는대로 설정하고 | modeline | 파일을 다시 편집 할 때이 값을 설정하십시오. Vim을 사용하여 파일을 편집 할 때만 작동합니다.

  4. 'tabstop'과 'shiftwidth'는 항상 같은 값으로 설정하고 'noexpandtab'을 설정하십시오. 그런 다음 사람들이 사용하는 탭 중지 설정에 대해 작동해야합니다 (초기 들여 쓰기에만 해당). 이렇게하면 공백이 아닌 첫 번째 공백이 아닌 후에 탭이 있으면 좋을 것입니다. 그렇지 않으면 'tabstop'이 변경 될 때 정렬 된 주석이 잘못됩니다.


또한 나중에 마음이 바뀔 가능성에 대해 너무 걱정하지 마십시오 ... :help retab(! 변종 확인)을 참조하십시오 .
Michał Marczyk

.vimrc 또는 다른 대안을 사용하여 autocmd를 보완합니까?
Josh Desmond

224
:set tabstop=4
:set shiftwidth=4
:set expandtab

탭 문자 대신 공백이 4 개 삽입됩니다. 공백은 좀 더 "안정적"입니다. 공백으로 들여 쓰기 된 텍스트는 브라우저 및 다른 응용 프로그램에서 동일하게 표시됩니다.


83
예, 그러나 탭은 의미 론적이며 (각 탭은 1 개의 들여 쓰기 레이어를 의미 함) 공백은 순수한 표현입니다. 즉, 탭을 사용하면 코드를 보는 다른 사람들이 편안하지만 넓게 표시 할 수 있지만 공백은이를 허용하지 않습니다.
K Prime

11
주 당신이 원하는 경우 '>''<' 는 AS 같은 거리 텍스트를 이동하는 - 중요한, 당신은 단순히 수 :set shiftwidth=0이것은 당신이 항상 일치 할 것을 정력을 알려주기 때문에 당신의 vimrc와, 영원히 잊어 버려요 tabstop.
SeldomNeedy

132

한 세션을 변경하려면 다음 명령을 사용하십시오.

:set tabstop=4

변경 사항을 영구적으로 만들려면 ~/.vimrc또는에 추가하십시오 ~/.vim/vimrc.

set tabstop=4

이것은 CSS뿐만 아니라 모든 파일에 영향을 미칩니다. CSS 파일에만 영향을 주려면

autocmd Filetype css setlocal tabstop=4

Michał의 답변에 명시된 바와 같이 .


2
탭이 네 개의 공백으로 작동하려면 @Zoul 응답의 다른 행을 .vimrc에 추가해야합니다. 즉, 'set shiftwidth = 4'및 'set expandtab'을 .vimrc에도 추가하십시오.
qartal

7
문제는 "Vim에서 탭 크기를 어떻게 변경합니까?"입니다.
Keith

이것이 내가하는 방법입니다. 그리고 확인 ~/.vimrc: 항상 백업, 나는 보통 내 드롭 박스의 파일 저장 폴더 다음 바탕 화면에 SYM 링크 생성ln -s /home/myfolder/Dropbox/.vimrc ~
enchance

41

이 페이지의 여러 답변은 설명 된 문제에 대한 '단일 사용'수정입니다. 다음에 vim을 사용하여 문서를 열면 이전 탭 설정이 반환됩니다.

누군가 탭 설정을 영구적으로 변경하려는 경우 :

  • .vimrc 찾기 / 열기- 여기 지침
  • 다음 줄을 추가하십시오 : ( 여기에 더 많은 정보 )

     set tabstop=4
     set shiftwidth=4
     set expandtab
    
  • 그런 다음 파일을 저장하고 테스트하십시오.


11
이것은 탭이 아닌 공백을 삽입합니다.
Supernovah

5
@Supernovah 당신은 점점 탭에 대해 "expandtab"를 제거 할 수 있습니다
kommradHomer

27

vim에 대한 하나의 라이너로 :

:set tabstop=4 shiftwidth=4 expandtab

대한 영구적 인 설정 에이 줄을 추가합니다 ~ / .vimrc 파일 :

set tabstop=4
set shiftwidth=4
set expandtab

6

최신 정보

특정 프로젝트에서 작업하는 경우 editorconfig를 사용하는 것이 좋습니다 .

.editorconfig리포지토리의 각 파일 형식에 사용할 들여 쓰기를 정의하는 리포지토리의 루트에서 파일 을 정의 할 수 있습니다 .

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

root = true

[*.css]
charset = utf-8
indent_style = space
indent_size = 4

[*.js]
charset = utf-8
indent_style = space
indent_size = 2

이있는 정력 플러그인 이 자동으로 구성합니다 정력 열고 파일의 설정 파일에 따라.

또한 .editorconfig파일은 다른 많은 IDE 및 편집기에서 자동으로 지원되므로 다른 환경의 사용자간에 협업하는 데 가장 적합한 옵션입니다.

원래 답변

크기를 자주 변경해야하고 특정 파일 형식에 바인딩하지 않으려는 경우 .vimrc 파일에 미리 정의 된 명령을 사용하여 환경 설정을 빠르게 전환 할 수 있습니다.

nmap <leader>t :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR>
nmap <leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR>

이것은 두 개의 다른 크기 세트를 키 \ t 및 \ m에 매핑합니다. 원하는 키에이를 리 바인드 할 수 있습니다.

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