Visual Studio Code : 형식이 들여 쓰기 설정을 사용하지 않습니다


143

Format CodeVisual Studio Code에서 명령을 사용할 때 들여 쓰기 설정 ( "editor.tabSize": 2)을 따르지 않습니다 . 대신 탭 크기 4를 사용하고 있습니다. 왜 이런 일이 일어나고 있습니까?

감사!


어느 언어? Visual Studio Code는 서식을 언어 포맷터로 위임합니다. 일부 포맷터는 들여 쓰기 설정을 준수합니다. 예를 들어, C #은 OmniSharp에서 처리하며 omnisharp.json을 사용하여 구성해야합니다.
Ian Yang

이 문제를 해결하는 데 오랜 시간이 걸렸습니다. 혼합 탭과 공백 들여 쓰기가있는 .cs 파일이 있었고 모든 탭으로 포맷하고 싶었습니다 (b / c 줄 대부분에 탭이 있음). "문서 형식"과 "형식 선택"으로 다양한 설정 값을 시도했지만 운이 없었습니다. 마지막으로 "들여 쓰기를 탭으로 변환"작업 (@Maleki의 답변에있는 이미지 참조)을 찾았습니다. (또한 최근에 ctrl-shift-p! ... 예, VS 코드를 처음 사용했습니다)
KevinVictor

답변:


229

서식 지정에 사용할 공간 수는 다른 위치에서 가져옵니다. 버전 1.0을 사용하고 있으며이를 해결하기 위해 수행 한 작업입니다 (탭 대신 공백을 사용한다고 가정합니다).

오른쪽의 편집기 하단에서 "공백 : #"을 클릭하십시오.

오른쪽의 상태 표시 줄

그러면 메뉴가 맨 위에 나타납니다. "공백 들여 쓰기"를 선택하십시오 :

들여 쓰기 유형 선택

마지막으로 파일을 들여 쓰기 할 공간 수를 선택할 수 있습니다.

탭 크기 선택

다음에 파일을 포맷 할 때 구성한 간격을 확보 할 수 있어야합니다.


28
이 설정은 자동 형식을 적용 할 때 사용되지 않습니다 (오른쪽 클릭-> 형식 코드). 항상 4 개의 공백을 사용합니다.
kiml42

작업 공간 또는 편집기 (또는 둘 다)에 대한 개인 설정을 구성해야합니다. 새 파일은 해당 설정을 선택하고 이러한 스크린 샷에 따라 상태 표시 줄에 '2'를 표시합니다. 그런 다음 자동 서식을 지정할 수 있습니다. 기존 파일의 경우 먼저 작업 영역 / 편집기 설정을 '탭 사용'또는 '공간 사용'으로 설정하고 공백 수를 설정 한 다음 위의 방법을 사용하여 기존 파일을 자동 형식화 할 수 있습니다.
rmcsharry

5
사용자 및 작업 영역 설정을 모두 설정하고 하단 표시 줄에서 다시 설정 한 파일을 다시 설정하십시오. 여전히 자동 서식은 4 개의 공백을 사용하고 있습니다.
Jared

3
설정을 수행하기 위해 사용자 및 작업 공간 기본값을 모두 설정 한 후 vscode를 종료했다가 다시 시작했습니다. 그런 다음에야 내 JS 파일에서 4 개의 공백을 사용하려고 시도하지 않았습니다.
John Pettitt

11
@Jared JS-CSS-HTML플러그인을 사용하고 있다고 생각합니다 . 이 경우을 누르고 F1포맷터를 선택하고 들여 쓰기를 설정하십시오. 위에서 설명한 모든 옵션을 재정의하는 것 같습니다.
Atif Mohammed Ameenuddin

112

Visual Studio Code는 기본값별로 현재 들여 쓰기를 감지하고이를 사용하여 .editorconfig를 무시합니다.

"editor.detectIndentation"false로 설정하십시오.

(파일-> 환경 설정-> 설정)

스크린 샷


이 경우 파일 내에서 들여 쓰기가 일치하지 않을 수 있습니다. 두 줄의 공백이있는 몇 줄 (이유를 아는 사람)을 제외하고 모든 곳에 탭이있는 파일이있었습니다. 결국 탭을 사용하는 것으로 감지되었지만 탭 크기는 2입니다.
isanae

49

@Maleki의 답변이 효과가 없다면 .editorconfig프로젝트 폴더에 파일 이 있는지 확인하십시오 .

예를 들어 Angular CLI는 다음과 같은 새 프로젝트로 생성합니다

# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false

작업 공간 또는 사용자 설정의 indent_size내용을 무시하는 것처럼 여기를 변경 해야합니다 .vscode.


5
변경 사항을 IDE에 적용하려면 VSCode를 다시 시작해야했습니다.
JOpuckman

3
내 경우에는 실제로 .editorconfig내 홈 폴더 의 파일로 인해 발생했습니다 . 어떻게 든 VSCode는 작업 공간 특정 설정을 무시합니다. 매우 성가신.
xji

20

플러그인 (제 경우에는 Vetur, vue.js 용)을 사용하는 경우 고유 한 탭 형식 설정을 지정할 수 있습니다.

설정을 열고 "형식"을 검색 한 후 전역 탭 형식을 덮어 쓸 수있는 관련 플러그인 설정을 살펴보십시오. 이것은 나를 위해 일했다. 기본 설정 (필자의 경우 4 크기 탭)과 일치하도록 Vetur 탭 설정을 업데이트하면 .vue 문서의 형식이 올바르게 작동하기 시작했습니다.

여기에 이미지 설명을 입력하십시오


사실, Prettier 확장 설정에서 탭 크기를 설정해야했습니다.
tonix

가치가 있다는 지적 SCSS Formatter이로 이동합니다 있도록 플러그인, 예를 들어 자신의 설정을 사용하여 Settings > Extensions > SCSS Formatter > Use Tabs예를 들어 탭을 사용하도록 강제 할 수 있습니다.
SmartyP

13

나 자신을 위해이 문제는 prettier작업 공간에 더 예쁜 구성 파일이없는 VSCode 플러그인 을 사용하여 발생했습니다 .

플러그인을 비활성화하면 문제가 해결되었습니다. 더 예쁜 구성에 의존하여 수정되었을 수도 있습니다.


1
저에게는 "Beautify"플러그인이었습니다.
Matthew Smith

"Clang-Format"및 ".clang-format"구성 파일에서 동일한 문제가 발생했습니다.
repkap11

6

JS-CSS-HTML Formatter 와 같은 일부 서식 확장이 설치되어있을 가능성이 큽니다 .

이 경우 명령 팔레트를 열고 "포맷터"를 입력 한 다음을 선택하십시오 Formatter Config. 그런 다음 "indent_size"원하는대로 값을 편집하십시오 .

추신 : 편집 후 Visual Studio Code를 다시 시작하는 것을 잊지 마십시오 :)


6

아래 설정으로 문제가 해결되었습니다.

  "editor.detectIndentation": false,
  "editor.insertSpaces": false,
  "editor.tabSize": 2,

두 개의 공백 탭이있는 파일로 작업하는 경우 작동합니다!
Dominux

2

탭 들여 쓰기가되지 않아 Google에서 여기 온 경우 "Tab Moves Focus"가 켜져 있기 때문일 수도 있습니다. 오른쪽 하단에 있으며 모니터가 충분하면 강조 표시되어 있어도 놓칠 수 있습니다.

여기에 이미지 설명을 입력하십시오

녹색 영역 또는 Ctrl + M을 클릭하여 중지하십시오. 나는 그것이 완전히 비활성화 될 수 있는지 확신하지 못한다면 다시 코드 편집기가 들여 쓰기와 같은 것을 엉망으로 만드는 이유를 알지 못합니다.


2

비슷한 문제가 있었지만 (내가 무엇을하든 사용자 설정에 있더라도 tabsize를 2로 고정시킬 수 없었습니다.) 결국 EditorConfig 확장 으로 인한 것 입니다. .editorconfig현재 작업 디렉토리에서 파일을 찾고, 파일을 찾지 못하면 (또는 찾은 파일이 지정하지 않은 경우 root=true) 디렉토리를 찾을 때까지 상위 디렉토리를 계속 찾습니다.

나는 밝혀이 있었다 .editorconfig나는 모든 내 새로운 코드 프로젝트를 넣어 디렉토리의 부모 디렉토리에, 그리고 파일이 내 문제를 해결한다는 4. 삭제의 tabSize를 지정했습니다.


1

때로는 같은 문제가 있습니다. VSCode는 갑자기 마음을 잃고 하루 종일 동일한 파일을 들여 쓰기하더라도 내가 말하는 들여 쓰기 설정을 완전히 무시합니다.

나는 editor.tabSize2로 editor.formatOnSave설정하고 true 로 설정했습니다. VSCode가 파일을 엉망으로 만들 때 편집기 하단의 옵션을 사용하여 들여 쓰기 유형과 크기를 변경하고 무언가가 작동하기를 원하지만 실제로 VSCode는 들여 쓰기 크기 4를 사용해야합니다.

수정? VSCode를 다시 시작하십시오. 들여 쓰기 상태가 잘못된 것을 보여 주어야합니다 (제 경우에는 4). 나에게 설정을 변경 한 다음 실제로 변경하기 위해 저장해야했지만 아마도 내 editor.formatOnSave설정 때문일 수 있습니다.

왜 그런 일이 발생했는지 알지 못했지만 JS 파일에서 중첩 된 객체를 편집 할 때 일반적으로 발생합니다. 내가 그 파일을 잠시 동안 작업했지만 제대로 들여 쓰기가되었지만 갑자기 객체 내에서 매우 이상한 들여 쓰기가 이루어집니다.


0

VSCode 플러그인 Vetur; VueJS 응용 프로그램에 사용 된 설정이 나를 대신했습니다.

vetur.format.options.tabSize를 원하는 수의 공간으로 설정하면 작동합니다.


0

vscode는 .py기본적으로 autopep8을 사용하여 포맷한다고 생각합니다 .

"PEP 8-Python 코드 스타일 가이드 | Python.org"

이 웹 사이트에 따르면 다음은 vscode가 항상 4 개의 공백을 사용하는 이유를 설명합니다.

들여 쓰기 레벨 당 4 개의 공백을 사용하십시오.


-1

모든 플러그인을 비활성화합니다 (그런 다음 하나씩 활성화하고 확인)

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