เมื่อใช้Format Code
คำสั่งในรหัส Visual Studio จะไม่เคารพการตั้งค่าเยื้องของฉัน ( "editor.tabSize": 2
) มันใช้ขนาดแท็บ 4 แทน ความคิดใด ๆ ว่าทำไมสิ่งนี้ถึงเกิดขึ้น?
ขอบคุณ!
เมื่อใช้Format Code
คำสั่งในรหัส Visual Studio จะไม่เคารพการตั้งค่าเยื้องของฉัน ( "editor.tabSize": 2
) มันใช้ขนาดแท็บ 4 แทน ความคิดใด ๆ ว่าทำไมสิ่งนี้ถึงเกิดขึ้น?
ขอบคุณ!
คำตอบ:
จำนวนช่องว่างที่จะใช้สำหรับการจัดรูปแบบนั้นมาจากตำแหน่งอื่น ฉันใช้เวอร์ชัน 1.0 และนี่คือสิ่งที่ฉันทำเพื่อแก้ไข (ฉันสมมติว่าคุณใช้ช่องว่างแทนแท็บ):
ที่ด้านล่างของเครื่องมือแก้ไขทางด้านขวาให้คลิก "Spaces: #":
จากนั้นเมนูจะปรากฏขึ้นด้านบน เลือก "เยื้องการใช้ช่องว่าง":
ในที่สุดคุณสามารถเลือกจำนวนช่องว่างที่คุณต้องการให้ไฟล์ของคุณเยื้อง
ครั้งต่อไปที่คุณฟอร์แมตไฟล์คุณควรจะได้รับระยะห่างที่คุณกำหนดค่าไว้
JS-CSS-HTML
ปลั๊กอิน ในกรณีนี้กดF1
และเลือกฟอร์แมตเตอร์และตั้งค่าการเยื้องของคุณ ดูเหมือนว่าจะแทนที่ตัวเลือกทั้งหมดที่กล่าวถึงข้างต้น
Visual Studio Code ตรวจจับการเยื้องปัจจุบันต่อค่าเริ่มต้นและใช้สิ่งนี้ - ละเว้น. editorconfig
ตั้งยัง "editor.detectIndentation"การเท็จ
(ไฟล์ -> การตั้งค่า -> การตั้งค่า)
หากคำตอบของ @ 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
พื้นที่ทำงานหรือการตั้งค่าผู้ใช้ของคุณ
.editorconfig
ไฟล์ในโฟลเดอร์บ้านของฉัน อย่างใดก็ทำให้ VSCode ละเว้นการตั้งค่าเฉพาะพื้นที่ทำงานใด ๆ น่ารำคาญมาก
หากคุณใช้ปลั๊กอิน (ในกรณีของฉัน Vetur สำหรับ vue.js) สิ่งเหล่านี้อาจตั้งค่าการจัดรูปแบบแท็บของตนเอง
เปิดการตั้งค่าของคุณค้นหา "รูปแบบ" และค้นหาการตั้งค่าปลั๊กอินที่เกี่ยวข้องซึ่งอาจแทนที่รูปแบบแท็บทั่วโลก สิ่งนี้ใช้ได้สำหรับฉัน เมื่อฉันอัปเดตการตั้งค่าแท็บ Vetur เพื่อให้ตรงกับการตั้งค่าของฉัน (แท็บ 4 ขนาดในกรณีของฉัน) การจัดรูปแบบเอกสาร. vue เริ่มทำงานได้อย่างถูกต้อง:
SCSS Formatter
ปลั๊กอินใช้การตั้งค่าของตัวเองตัวอย่างเช่นคุณต้องไปSettings > Extensions > SCSS Formatter > Use Tabs
บังคับให้ใช้แท็บตัวอย่างเช่น
สำหรับตัวฉันเองปัญหานี้เกิดจากการใช้prettier
ปลั๊กอิน VSCode โดยไม่ต้องมีไฟล์ config ที่สวยกว่าในเวิร์กสเปซ
การปิดใช้งานปลั๊กอินแก้ไขปัญหา มันอาจจะได้รับการแก้ไขโดยอาศัยการกำหนดค่าที่ดีกว่า
ส่วนใหญ่มีแนวโน้มที่คุณมีบางส่วนขยายการจัดรูปแบบการติดตั้งเช่นJS-CSS-HTML ฟอร์แมต
ถ้าเป็นกรณีนี้แล้วเพียงแค่เปิดคำสั่ง Palette พิมพ์ "ฟอร์แมต" Formatter Config
และเลือก จากนั้นแก้ไขค่า"indent_size"
ตามที่คุณต้องการ
PS อย่าลืมรีสตาร์ท Visual Studio Code หลังจากแก้ไข :)
การตั้งค่าด้านล่างแก้ปัญหาของฉันได้
"editor.detectIndentation": false,
"editor.insertSpaces": false,
"editor.tabSize": 2,
หากคุณมาที่นี่จาก google เพราะแท็บไม่เยื้องนั่นอาจเป็นเพราะ "Tab Moves Focus" เปิดอยู่ มันอยู่ที่ด้านล่างขวาและถ้าคุณมีจอมอนิเตอร์ขนาดใหญ่พอคุณอาจพลาดได้แม้ว่ามันจะถูกไฮไลต์
คลิกพื้นที่สีเขียวหรือ Ctrl + M เพื่อหยุด ฉันไม่แน่ใจว่าสามารถปิดใช้งานได้ทั้งหมดจากนั้นอีกครั้งฉันไม่รู้ว่าทำไมตัวแก้ไขรหัสต้องการยุ่งกับสิ่งที่เยื้อง
ผมมีปัญหาที่คล้ายกัน - ไม่สำคัญว่าสิ่งที่ฉันไม่ได้ฉันไม่สามารถรับ tabsize ไปติดที่ 2 แม้ว่ามันจะอยู่ในของฉันตั้งค่าผู้ใช้ - ที่จบลงด้วยการเนื่องจากการขยาย EditorConfig มันจะค้นหา.editorconfig
ไฟล์ในไดเรกทอรีการทำงานปัจจุบันของคุณและหากไม่พบหนึ่งไฟล์ (หรือไฟล์นั้นไม่ได้ระบุไว้root=true
) จะทำการค้นหาไดเรกทอรีหลักต่อไปจนกว่าจะพบหนึ่งไฟล์
ปรากฎว่าฉันมี.editorconfig
ในไดเรกทอรีหลักของ dir ฉันใส่รหัสโครงการใหม่ทั้งหมดของฉันและมันระบุ tabSize ของ 4 การลบไฟล์นั้นแก้ไขปัญหาของฉัน
บางครั้งฉันมีปัญหาเดียวกันนี้ VSCode จะสูญเสียความคิดในทันทีทันใดและไม่สนใจการตั้งค่าเยื้องใด ๆ ที่ฉันบอกถึงแม้ว่ามันจะเยื้องไฟล์เดียวกันเพียงแค่ปรับทุกวัน
ฉันได้editor.tabSize
ตั้งค่าเป็น 2 (รวมทั้งeditor.formatOnSave
ตั้งค่าเป็นจริง) เมื่อ VSCode ทำให้ไฟล์ยุ่งเหยิงฉันใช้ตัวเลือกที่ด้านล่างของเครื่องมือแก้ไขเพื่อเปลี่ยนประเภทและขนาดของการเยื้องโดยหวังว่าจะมีบางสิ่งบางอย่างทำงานได้ แต่ VSCode ยืนยันในการใช้ขนาดย่อหน้าที่ 4
การแก้ไข? รีสตาร์ท VSCode ควรกลับมาพร้อมกับสถานะการเยื้องแสดงสิ่งผิดปกติ (ในกรณีของฉัน 4) สำหรับฉันฉันต้องเปลี่ยนการตั้งค่าแล้วบันทึกเพื่อให้การเปลี่ยนแปลงจริง แต่นั่นอาจเป็นเพราะeditor.formatOnSave
การตั้งค่าของฉัน
ฉันไม่ได้คิดออกว่าทำไมมันเกิดขึ้น แต่สำหรับฉันมันมักจะเมื่อฉันแก้ไขวัตถุที่ซ้อนกันในไฟล์ JS ทันใดนั้นมันจะทำการเยื้องที่แปลกมากภายในวัตถุแม้ว่าฉันจะทำงานในไฟล์นั้นมาระยะหนึ่งแล้ว
ปลั๊กอิน VSCode Vetur; ใช้สำหรับแอปพลิเคชั่น VueJS กำลังแทนที่การตั้งค่าสำหรับฉัน
การตั้งค่า vetur.format.options.tabSize ตามจำนวนช่องว่างที่ฉันต้องการทำให้ใช้งานได้
ฉันคิดว่า vscode ใช้ autopep8 เพื่อจัดรูปแบบ.py
ตามค่าเริ่มต้น
"PEP 8 - คู่มือสไตล์สำหรับรหัส Python | Python.org"
ตามเว็บไซต์นี้ข้อมูลต่อไปนี้อาจอธิบายได้ว่าเหตุใด vscode จึงใช้พื้นที่ 4 แห่ง
ใช้ 4 ช่องว่างต่อระดับการเยื้อง
ปิดใช้งานปลั๊กอินทั้งหมด (จากนั้นเปิดใช้งานทีละหนึ่งและตรวจสอบ)