Visual Studio Code: รูปแบบไม่ได้ใช้การตั้งค่าเยื้อง


144

เมื่อใช้Format Codeคำสั่งในรหัส Visual Studio จะไม่เคารพการตั้งค่าเยื้องของฉัน ( "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 และนี่คือสิ่งที่ฉันทำเพื่อแก้ไข (ฉันสมมติว่าคุณใช้ช่องว่างแทนแท็บ):

ที่ด้านล่างของเครื่องมือแก้ไขทางด้านขวาให้คลิก "Spaces: #":

แถบสถานะทางด้านขวา

จากนั้นเมนูจะปรากฏขึ้นด้านบน เลือก "เยื้องการใช้ช่องว่าง":

เลือกประเภทการเยื้อง

ในที่สุดคุณสามารถเลือกจำนวนช่องว่างที่คุณต้องการให้ไฟล์ของคุณเยื้อง

เลือกขนาดแท็บ

ครั้งต่อไปที่คุณฟอร์แมตไฟล์คุณควรจะได้รับระยะห่างที่คุณกำหนดค่าไว้


28
การตั้งค่านี้ไม่ได้ใช้เมื่อใช้รูปแบบอัตโนมัติ (คลิกขวา -> รหัสรูปแบบ) มันมักจะใช้ช่องว่าง 4
kiml42

คุณต้องทั้งคู่ - กำหนดการตั้งค่าส่วนบุคคลของคุณสำหรับพื้นที่ทำงานหรือโปรแกรมแก้ไข (หรือทั้งสองอย่าง) ไฟล์ใหม่จะรับการตั้งค่านั้นและแสดง '2' ตัวอย่างเช่นในแถบสถานะตามภาพหน้าจอเหล่านี้ จากนั้นคุณสามารถจัดรูปแบบอัตโนมัติ สำหรับไฟล์ที่มีอยู่ให้ตั้งค่าการตั้งค่าพื้นที่ทำงาน / แก้ไขเป็น 'ใช้แท็บ' หรือ 'ใช้พื้นที่' และตั้งค่าจำนวนช่องว่างจากนั้นคุณสามารถทำวิธีการด้านบนเพื่อจัดรูปแบบไฟล์ที่มีอยู่โดยอัตโนมัติ
rmcsharry

5
ตั้งค่าทั้งการตั้งค่าของผู้ใช้และพื้นที่ทำงานตั้งอยู่ในแถบด้านล่างไฟล์เปิด - ยังคง autoformat ใช้ 4 ช่องว่าง ...
Jared

3
จะต้องออกและรีสตาร์ท vscode หลังจากการตั้งค่าทั้งค่าเริ่มต้นผู้ใช้และพื้นที่ทำงาน เพียงแค่นั้นก็หยุดพยายามที่จะใช้ 4 ช่องว่างในไฟล์ JS ของฉัน
John Pettitt

11
@ Jared ฉันคิดว่าคุณใช้JS-CSS-HTMLปลั๊กอิน ในกรณีนี้กดF1และเลือกฟอร์แมตเตอร์และตั้งค่าการเยื้องของคุณ ดูเหมือนว่าจะแทนที่ตัวเลือกทั้งหมดที่กล่าวถึงข้างต้น
Atif Mohammed Ameenuddin

113

Visual Studio Code ตรวจจับการเยื้องปัจจุบันต่อค่าเริ่มต้นและใช้สิ่งนี้ - ละเว้น. editorconfig

ตั้งยัง "editor.detectIndentation"การเท็จ

(ไฟล์ -> การตั้งค่า -> การตั้งค่า)

ภาพหน้าจอ


หากสิ่งนี้เกิดขึ้นคุณอาจมีการเยื้องที่ไม่สอดคล้องกันภายในไฟล์ ฉันมีไฟล์ที่มีแท็บทุกที่ยกเว้นสองสามบรรทัดที่มีช่องว่างสองอัน (ใครจะรู้สาเหตุ) ซึ่งตรวจพบว่าเป็นการใช้แท็บ แต่มีขนาดแท็บ 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
ฉันต้องรีสตาร์ท VSCode เพื่อให้การเปลี่ยนแปลงมีผลใน IDE
JOpuckman

3
ในกรณีของฉันมันเกิดจาก.editorconfigไฟล์ในโฟลเดอร์บ้านของฉัน อย่างใดก็ทำให้ VSCode ละเว้นการตั้งค่าเฉพาะพื้นที่ทำงานใด ๆ น่ารำคาญมาก
xji

20

หากคุณใช้ปลั๊กอิน (ในกรณีของฉัน Vetur สำหรับ vue.js) สิ่งเหล่านี้อาจตั้งค่าการจัดรูปแบบแท็บของตนเอง

เปิดการตั้งค่าของคุณค้นหา "รูปแบบ" และค้นหาการตั้งค่าปลั๊กอินที่เกี่ยวข้องซึ่งอาจแทนที่รูปแบบแท็บทั่วโลก สิ่งนี้ใช้ได้สำหรับฉัน เมื่อฉันอัปเดตการตั้งค่าแท็บ Vetur เพื่อให้ตรงกับการตั้งค่าของฉัน (แท็บ 4 ขนาดในกรณีของฉัน) การจัดรูปแบบเอกสาร. vue เริ่มทำงานได้อย่างถูกต้อง:

ป้อนคำอธิบายรูปภาพที่นี่


ที่จริงในกรณีของฉันฉันต้องตั้งขนาดแท็บในการตั้งค่าของส่วนขยาย Prettier เช่นกัน
tonix

น่าสังเกตว่าSCSS Formatterปลั๊กอินใช้การตั้งค่าของตัวเองตัวอย่างเช่นคุณต้องไปSettings > Extensions > SCSS Formatter > Use Tabsบังคับให้ใช้แท็บตัวอย่างเช่น
SmartyP

13

สำหรับตัวฉันเองปัญหานี้เกิดจากการใช้prettierปลั๊กอิน VSCode โดยไม่ต้องมีไฟล์ config ที่สวยกว่าในเวิร์กสเปซ

การปิดใช้งานปลั๊กอินแก้ไขปัญหา มันอาจจะได้รับการแก้ไขโดยอาศัยการกำหนดค่าที่ดีกว่า


1
สำหรับฉันมันเป็นปลั๊กอิน "บรรเจิด"
Matthew Smith

ฉันมีปัญหาเดียวกันกับไฟล์ "Clang-Format" และ ".clang-format" config
repkap11

6

ส่วนใหญ่มีแนวโน้มที่คุณมีบางส่วนขยายการจัดรูปแบบการติดตั้งเช่นJS-CSS-HTML ฟอร์แมต

ถ้าเป็นกรณีนี้แล้วเพียงแค่เปิดคำสั่ง Palette พิมพ์ "ฟอร์แมต" Formatter Configและเลือก จากนั้นแก้ไขค่า"indent_size"ตามที่คุณต้องการ

PS อย่าลืมรีสตาร์ท Visual Studio Code หลังจากแก้ไข :)


6

การตั้งค่าด้านล่างแก้ปัญหาของฉันได้

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

ใช้งานได้หากคุณทำงานกับไฟล์ที่มีแท็บ 2 ช่องว่างเท่านั้น!
Dominux

2

หากคุณมาที่นี่จาก google เพราะแท็บไม่เยื้องนั่นอาจเป็นเพราะ "Tab Moves Focus" เปิดอยู่ มันอยู่ที่ด้านล่างขวาและถ้าคุณมีจอมอนิเตอร์ขนาดใหญ่พอคุณอาจพลาดได้แม้ว่ามันจะถูกไฮไลต์

ป้อนคำอธิบายรูปภาพที่นี่

คลิกพื้นที่สีเขียวหรือ Ctrl + M เพื่อหยุด ฉันไม่แน่ใจว่าสามารถปิดใช้งานได้ทั้งหมดจากนั้นอีกครั้งฉันไม่รู้ว่าทำไมตัวแก้ไขรหัสต้องการยุ่งกับสิ่งที่เยื้อง


2

ผมมีปัญหาที่คล้ายกัน - ไม่สำคัญว่าสิ่งที่ฉันไม่ได้ฉันไม่สามารถรับ tabsize ไปติดที่ 2 แม้ว่ามันจะอยู่ในของฉันตั้งค่าผู้ใช้ - ที่จบลงด้วยการเนื่องจากการขยาย EditorConfig มันจะค้นหา.editorconfigไฟล์ในไดเรกทอรีการทำงานปัจจุบันของคุณและหากไม่พบหนึ่งไฟล์ (หรือไฟล์นั้นไม่ได้ระบุไว้root=true ) จะทำการค้นหาไดเรกทอรีหลักต่อไปจนกว่าจะพบหนึ่งไฟล์

ปรากฎว่าฉันมี.editorconfigในไดเรกทอรีหลักของ dir ฉันใส่รหัสโครงการใหม่ทั้งหมดของฉันและมันระบุ tabSize ของ 4 การลบไฟล์นั้นแก้ไขปัญหาของฉัน


1

บางครั้งฉันมีปัญหาเดียวกันนี้ VSCode จะสูญเสียความคิดในทันทีทันใดและไม่สนใจการตั้งค่าเยื้องใด ๆ ที่ฉันบอกถึงแม้ว่ามันจะเยื้องไฟล์เดียวกันเพียงแค่ปรับทุกวัน

ฉันได้editor.tabSizeตั้งค่าเป็น 2 (รวมทั้งeditor.formatOnSaveตั้งค่าเป็นจริง) เมื่อ VSCode ทำให้ไฟล์ยุ่งเหยิงฉันใช้ตัวเลือกที่ด้านล่างของเครื่องมือแก้ไขเพื่อเปลี่ยนประเภทและขนาดของการเยื้องโดยหวังว่าจะมีบางสิ่งบางอย่างทำงานได้ แต่ VSCode ยืนยันในการใช้ขนาดย่อหน้าที่ 4

การแก้ไข? รีสตาร์ท VSCode ควรกลับมาพร้อมกับสถานะการเยื้องแสดงสิ่งผิดปกติ (ในกรณีของฉัน 4) สำหรับฉันฉันต้องเปลี่ยนการตั้งค่าแล้วบันทึกเพื่อให้การเปลี่ยนแปลงจริง แต่นั่นอาจเป็นเพราะeditor.formatOnSaveการตั้งค่าของฉัน

ฉันไม่ได้คิดออกว่าทำไมมันเกิดขึ้น แต่สำหรับฉันมันมักจะเมื่อฉันแก้ไขวัตถุที่ซ้อนกันในไฟล์ JS ทันใดนั้นมันจะทำการเยื้องที่แปลกมากภายในวัตถุแม้ว่าฉันจะทำงานในไฟล์นั้นมาระยะหนึ่งแล้ว


0

ปลั๊กอิน VSCode Vetur; ใช้สำหรับแอปพลิเคชั่น VueJS กำลังแทนที่การตั้งค่าสำหรับฉัน

การตั้งค่า vetur.format.options.tabSize ตามจำนวนช่องว่างที่ฉันต้องการทำให้ใช้งานได้


0

ฉันคิดว่า vscode ใช้ autopep8 เพื่อจัดรูปแบบ.pyตามค่าเริ่มต้น

"PEP 8 - คู่มือสไตล์สำหรับรหัส Python | Python.org"

ตามเว็บไซต์นี้ข้อมูลต่อไปนี้อาจอธิบายได้ว่าเหตุใด vscode จึงใช้พื้นที่ 4 แห่ง

ใช้ 4 ช่องว่างต่อระดับการเยื้อง


-1

ปิดใช้งานปลั๊กอินทั้งหมด (จากนั้นเปิดใช้งานทีละหนึ่งและตรวจสอบ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.