จะเปลี่ยนการเยื้องใน Visual Studio Code ได้อย่างไร


344

สำหรับทุกไฟล์รหัสภาพสตูดิโอ typescript ใช้การเยื้องอัตโนมัติของ 8 ช่องว่าง นี่มันมากเกินไปสำหรับรสนิยมของฉัน แต่ฉันไม่สามารถหาที่จะเปลี่ยนได้

อาจจะเป็นการตั้งค่า แต่ภายใต้ชื่ออื่นเนื่องจากฉันไม่พบสิ่งที่เกี่ยวข้องกับการเยื้อง

UPDATE

ขณะนี้ฉันใช้ตัวจัดรูปแบบรหัส Prettierและแก้ปัญหาการจัดรูปแบบทั้งหมดโดยการจัดรูปแบบอัตโนมัติในการบันทึก (หากไม่มีข้อผิดพลาดทางไวยากรณ์)

คำตอบ:


112

คุณสามารถเปลี่ยนแปลงสิ่งนี้ในระดับสากลUserหรือWorkspaceระดับ

เปิดการตั้งค่า: การใช้ทางลัดctrl + ,หรือคลิกFile> Preferences> Settingsที่แสดงด้านล่าง

การตั้งค่าในเมนูรหัส VS

จากนั้นให้ทำการเปลี่ยนแปลง 2 อย่างต่อไปนี้: (พิมพ์tabSizeในแถบค้นหา)

  1. ยกเลิกการทำเครื่องหมายในช่องของ Detect Indentation
  2. เปลี่ยนขนาดแท็บเป็น 2/4 (แม้ว่าฉันคิดว่า 2 ถูกต้องสำหรับ JS :))

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


1
กรุณาใช้ช่องว่าง 4 สำหรับการเยื้อง
Bohdan Kuts

3
@BohdanKuts ฮ่า ๆ นี่จะเป็นการโต้แย้งที่ไม่รู้จบ
Xin

อ๋อ :) ฉันค้นหาแล้วพบว่าทำไมมันถึงกลายเป็นช่องว่าง 2 อัน และสำหรับฉันเหตุผลนั้นดูล้าสมัยดังนั้นฉันจะแนะนำให้ใช้ 4 ช่องว่างอย่างแน่นอน
Bohdan Kuts

นี่เป็นเรื่องส่วนตัวและไม่มีข้อได้เปรียบจริงฉันเก็บ 2 ช่องว่างสำหรับไฟล์บางประเภทเช่น js, html และ css และ 3 ช่องว่างสำหรับโค้ดเพื่อความสะดวกในการอ่าน ใน HTML และ XML ที่มีช่องว่าง 4 รายการคุณจะต้องเลื่อนไปทางขวาในไม่ช้า
Pablo Pazos

574

ในแถบเครื่องมือที่มุมล่างขวาคุณจะเห็นรายการที่มีลักษณะดังนี้: ป้อนคำอธิบายรูปภาพที่นี่ หลังจากคลิกที่มันคุณจะได้รับตัวเลือกในการเยื้องโดยใช้ช่องว่างหรือแท็บ หลังจากเลือกประเภทการเยื้องของคุณคุณจะมีตัวเลือกเพื่อเปลี่ยนขนาดของการเยื้อง ในกรณีของตัวอย่างข้างต้นเยื้องถูกตั้งค่าเป็น 4 ช่องว่างต่อการเยื้อง หากแท็บถูกเลือกเป็นอักขระการเยื้องของคุณคุณจะเห็นขนาดแท็บแทนช่องว่าง

หากคุณต้องการที่จะใช้สิ่งนี้กับไฟล์ทั้งหมดและไม่ได้อยู่บนพื้นฐานของแต่ละไฟล์ให้แทนที่Editor: Tab SizeและEditor: Insert Spacesการตั้งค่าในการตั้งค่าผู้ใช้หรือการตั้งค่าพื้นที่ทำงานขึ้นอยู่กับความต้องการของคุณ

แก้ไข 1

ที่จะได้รับการตั้งค่าผู้ใช้หรือพื้นที่ทำงานของคุณไปที่การตั้งค่า -> การตั้งค่า ตรวจสอบว่าคุณอยู่ในแท็บผู้ใช้หรือพื้นที่ทำงานขึ้นอยู่กับความต้องการของคุณและใช้แถบค้นหาเพื่อค้นหาการตั้งค่า คุณอาจต้องการปิดการใช้งานEditor: Detect Indentationเนื่องจากการตั้งค่านี้จะแทนที่สิ่งที่คุณตั้งไว้ Editor: Insert SpacesและEditor: Tab Sizeเมื่อเปิดใช้งาน


ลิงค์รูปภาพเสีย

34
การเปลี่ยนแปลงeditor.tabSpacesไม่ได้เปลี่ยนระยะห่างในไฟล์ทั้งหมด มันเปลี่ยนเฉพาะไฟล์ที่สร้างในอนาคต ยังไม่มีวิธีแก้ไขสำหรับแก้ไขไฟล์ทั้งหมดในการกระทำเดียว
Jacob Stamm

3
ว้าว. ใจเป่า บางครั้งสิ่งต่าง ๆ ก็ซ่อนอยู่ในสายตาธรรมดา
pingo

4
นี่คือใช้งานง่ายสุด ๆ ฉันได้ตั้งค่าการเยื้องให้ใช้ช่องว่างแล้ว ทำไมฉันต้องคลิกที่ตัวเลือกช่องว่างเพื่อไปยังเมนูที่สองและซ่อนไว้เพื่อตั้งค่าจำนวนช่องว่าง เครื่องมือแก้ไขอื่น ๆ ที่ฉันเคยใช้คือคลิกเดียวในรายละเอียดการเยื้องในแถบสถานะและมีตัวเลือกช่องว่างจำนวนหนึ่ง ใน VS Code ฉันต้องการค้นหาสิ่งนี้ใน Stack Overflow เนื่องจากเมนูที่ฉันต้องการซ่อนอยู่หลังตัวเลือกที่ฉันไม่ได้พยายามเปลี่ยน
ian.pvd

1
ดูเหมือนว่าจะย้อนกลับไปเป็นค่าเริ่มต้นที่ว่าง 4 ครั้งทุกครั้งที่ฉันสร้างไฟล์ใหม่?!?!
oldboy

143

หากต้องการเปลี่ยนการเยื้องตามภาษาการเขียนโปรแกรม :

  1. เปิดคำสั่ง Palette ( CtrlShiftP| MacOS: P)
  2. การตั้งค่า: กำหนดค่าการตั้งค่าภาษาเฉพาะ ... (คำสั่ง ID: workbench.action.configureLanguageBasedSettings)
  3. เลือกภาษาการเขียนโปรแกรม (เช่น TypeScript)
  4. เพิ่มรหัสนี้:

    "[typescript]": {
        "editor.tabSize": 2
    }
    

ดูเพิ่มเติมที่: เอกสารรหัส VS


คนเราใช้รหัสคำสั่งได้อย่างไร (ที่ไหน) ฉันไม่เห็น "กำหนดการตั้งค่าเฉพาะภาษา" ใต้การตั้งค่าไฟล์
Alan Baljeu

@AlanBaljeu คุณสามารถใช้รหัสคำสั่งสำหรับแป้นพิมพ์ลัดส่วนขยาย ฯลฯ ดังนั้นคุณสามารถไปที่ไฟล์ > การตั้งค่า > แป้นพิมพ์ลัดวาง ID ลงในอินพุตและกำหนดตัวอย่าง Ctrl + K Ctrl + L ให้กับคำสั่ง
Martin Schneider

55

คุณอาจต้องการตั้งค่าเป็นeditor.detectIndentationเท็จนอกเหนือจากคำตอบของ Elliot-J

VSCode จะเขียนทับeditor.tabSizeและeditor.insertSpacesการตั้งค่าของคุณต่อไฟล์หากตรวจพบว่าไฟล์มีรูปแบบการเว้นวรรคหรือแท็บที่แตกต่างกัน คุณสามารถพบปัญหานี้หากคุณเพิ่มไฟล์ที่มีอยู่ให้กับโครงการของคุณหรือถ้าคุณเพิ่มไฟล์โดยใช้ตัวสร้างโค้ดเช่น Angular Cli การตั้งค่าด้านบนป้องกัน VSCode ไม่ให้ทำเช่นนี้


44

ทางลัดการจัดรูปแบบรหัส:

VSCode บน Windows - Shift + Alt + F

VSCode บน MacOS - Shift + Option + F

VSCode บน Ubuntu - Ctrl + Shift + I

นอกจากนี้คุณยังสามารถปรับแต่งทางลัดนี้โดยใช้การตั้งค่ากำหนดหากต้องการ

การเลือกคอลัมน์ด้วยแป้นพิมพ์ Ctrl + Shift + Alt + Arrow


1
Shift + Alt + Fเปลี่ยนการเยื้องทั้งหมดในไฟล์ของฉันจาก 8 ช่องว่างเป็น 4 ช่องว่างเริ่มต้นของฉัน สิ่งที่ฉันกำลังมองหา :)
Harry12345

24

ในกรณีของฉันextention " EditorConfig สำหรับรหัส VS " กำลังแทนที่การตั้งค่า VSCode หากคุณติดตั้งแล้วให้ตรวจสอบไฟล์. editorconfig ในโฟลเดอร์รูทของโครงการ

นี่คือตัวอย่างการกำหนดค่า "indent_size" ตั้งค่าจำนวนช่องว่างสำหรับแท็บ

# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

7

คำอธิบายที่ง่ายขึ้นพร้อมรูปภาพสำหรับผู้ที่ googled "เปลี่ยนการเยื้องในรหัส VS"

ขั้นตอนที่ 1: คลิกที่การตั้งค่า> การตั้งค่า

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

ขั้นตอนที่ 2: การตั้งค่าที่คุณต้องการคือ "ตรวจจับการเยื้อง" และเริ่มพิมพ์ คลิกที่ "ตัวแก้ไข: ขนาดแท็บ"

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

ขั้นตอนที่ 3: เลื่อนลงไปที่ "ตัวแก้ไข: ขนาดแท็บ" และพิมพ์ 2 (หรืออะไรก็ได้ที่คุณต้องการ)

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



การเปลี่ยนแปลงจะถูกบันทึกโดยอัตโนมัติ

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

ตัวอย่างการเปลี่ยนแปลงของฉัน

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


6

หากต้องการตั้งค่าไฟล์ที่มีอยู่ทั้งหมดและไฟล์ใหม่เป็นช่องว่างการระบุเป็น 2 เพียงแค่ใส่ไว้ใน settingns.json ของคุณ (ในรูทของ json):

"[typescript]": {
        "editor.defaultFormatter": "vscode.typescript-language-features",
        "editor.tabSize": 2,
        "editor.insertSpaces": true,
        "editor.detectIndentation":false
 }

คุณสามารถเพิ่มประเภทภาษาของการกำหนดค่า:

"[javascript]": {
    "editor.tabSize": 2,
    "editor.insertSpaces": true,
    "editor.detectIndentation":false
} 

ทุกวันนี้ฉันใช้ prettier.js และปลั๊กอิน js เพื่อดูแลการเว้นวรรคและการจัดเรียงบรรทัดยาวรวมถึงสิ่งอื่น ๆ
HMR

1
ขอบคุณคำตอบที่ยอดเยี่ยมวิธีที่ดีที่สุดสำหรับฉัน
Swetabja Hazra

5

วิธีเปลี่ยนการเยื้องเป็น 4 ช่องว่างในไฟล์ทั้งหมดในรหัส VS เป็น 2 ช่องว่าง

  • เปิดการค้นหาไฟล์
  • เปิดใช้งานนิพจน์ทั่วไป
  • ป้อน: ( {2})(?: {2})(\b|(?!=[,'";\.:\*\\\/\{\}\[\]\(\)]))ในช่องค้นหา
  • ป้อน: $1ในช่องแทนที่

วิธีเปลี่ยนการเว้นวรรค 2 ช่องในไฟล์ทั้งหมดในรหัส VS เป็น 4 ช่องว่าง

  • เปิดการค้นหาไฟล์
  • เปิดใช้งานนิพจน์ทั่วไป
  • ป้อน: ( {2})(\b|(?!=[,'";\.:\\*\\\/{\}\[\]\(\)]))ในช่องค้นหา
  • ป้อน: $1$1ในช่องแทนที่

หมายเหตุ: คุณต้องเปิด PERL Regex ก่อน นี่คือวิธี:

  • เปิดการตั้งค่าและไปที่ไฟล์ JSON
  • เพิ่มสิ่งต่อไปนี้ในไฟล์ JSON "search.usePCRE2": true

หวังว่าจะมีคนเห็นสิ่งนี้


1
เฉพาะสำหรับรหัส VS นอกจากนี้ยังมีส่วนขยายสำหรับการแปลงช่องว่าง 4 ถึง 2
tanius

4

ปัญหา: คำตอบที่ยอมรับไม่ได้แก้ไขการเยื้องในเอกสารปัจจุบัน

วิธีแก้ไข: เรียกใช้Format Documentเพื่อประมวลผลเอกสารตามการตั้งค่าปัจจุบัน (ใหม่)

ปัญหา: เอกสาร HTML ในโครงการของฉันเป็นประเภท "Django HTML" ไม่ใช่ "HTML" และไม่มีฟอร์แมตเตอร์

วิธีแก้ไข: เปลี่ยนเป็นไวยากรณ์ "HTML" จัดรูปแบบแล้วเปลี่ยนกลับเป็น "Django HTML"

ปัญหา: ฟอร์แมตเตอร์ HTML ไม่ทราบวิธีจัดการแท็กเทมเพลต Django และเลิกทำรังที่ฉันใช้อย่างระมัดระวัง

การแก้ไข: ติดตั้งส่วนขยายIndent 4-2ซึ่งดำเนินการเยื้องอย่างเคร่งครัดโดยไม่คำนึงถึงไวยากรณ์ภาษาปัจจุบัน (ซึ่งเป็นสิ่งที่ฉันต้องการในกรณีนี้)


2

ฉันต้องการเปลี่ยนการเยื้องของไฟล์ HTML ที่มีอยู่จาก 4 ช่องว่างเป็น 2 ช่องว่าง

ฉันคลิกปุ่ม 'Spaces: 4' ในแถบสถานะและเปลี่ยนเป็นสองในกล่องโต้ตอบถัดไป

ฉันใช้ส่วนขยาย 'เป็นกลุ่ม' ฉันไม่ต้องเยื้องอีกครั้งโดยไม่ต้องเป็นกลุ่ม

เมื่อต้องการเยื้องไฟล์ปัจจุบันของฉันอีกครั้งฉันใช้สิ่งนี้:

gg

=

G

0

เพิ่มบน: ใช่คุณสามารถใช้ UI ด้านล่างขวาเพื่อกำหนดการตั้งค่าพื้นที่ แต่ถ้าคุณได้รหัสที่ไม่ได้จัดรูปแบบให้ระยะห่างใหม่ที่มีอยู่แล้วคุณสามารถคลิกขวาที่ใดก็ได้ภายในไฟล์และคลิกรูปแบบเอกสาร เอาฉันสักครู่เพื่อคิดออกจนกว่าฉันจะพบปัญหานี้

ฟอร์แมตเมนูเอกสาร

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