ตัดสายอัตโนมัติที่คอลัมน์ใน VSCode


117

ฉันจะตัดสายอัตโนมัติใน VSCode โดยอัตโนมัติได้อย่างไร โดยที่ฉันหมายถึงถ้าบรรทัดถึงคอลัมน์ที่ระบุให้แทรกขึ้นบรรทัดใหม่โดยอัตโนมัติที่ขอบเขตคำที่ใกล้กับคอลัมน์นั้นที่สุดโดยไม่ต้องผ่าน Vim มีการตั้งค่าที่เรียกว่าtextwidthซึ่งทำสิ่งนี้ที่ฉันชอบใช้เมื่อแก้ไข Markdown ดูเหมือนว่า VSCode จะไม่เป็นเช่นนั้นเท่าที่ฉันสามารถบอกได้ มันมีวิธีควบคุม softwrapping


2
จะมีใครช่วยตอบได้ไหม!
umayfindurself

การใช้สิ่งนี้ของคุณเกี่ยวกับการทำเครื่องหมายเป็นเรื่องที่ยอดเยี่ยมฉันไม่เคยคิดที่จะใช้การหยุดพักอย่างหนักเช่นนั้น
Mark Carpenter Jr

หมายเหตุให้ผู้วิจัยค้นหาคำตอบนี้ เนื่องจากเป็นปี 2020 คำตอบที่ถูกต้องคือหมายเลข 3 คำตอบ 1 และ 2 ล้าสมัย
benni

คำตอบ:


153

VSCode ไม่รองรับสิ่งนี้นอกกรอบ แต่คุณสามารถติดตั้งRewrapส่วนขยายที่ช่วยให้คุณสามารถจัดรูปแบบบล็อกที่เคอร์เซอร์ของคุณอยู่ในขณะนี้โดยการกด+AltQ

Rewrap ไม่จำเป็นต้องมีการตั้งค่าเพิ่มเติมเนื่องจากอ่านการตั้งค่าของ VSCode เพื่อรับคอลัมน์ที่จะทำลาย

Rewrapยังรองรับการตัดอัตโนมัติ (ปิดโดยค่าเริ่มต้น): https://github.com/stkb/Rewrap/wiki/Auto-wrap


2
ทำเครื่องหมายว่านี่เป็นคำตอบที่ยอมรับและแก้ไขเพื่อระบุว่าตอนนี้รองรับการกรอกลับอัตโนมัติแล้ว!
Brian Schlenker

2
ดูเหมือนว่านี่เป็นเพียงบล็อกความคิดเห็นเท่านั้น? แล้วสายรหัสล่ะ? ฉันลองใช้เวอร์ชันล่าสุดซึ่งเป็น 1.9.1 และบล็อกความคิดเห็นจะถูกห่ออัตโนมัติอย่างไรก็ตามสำหรับบรรทัดรหัส (ฉันใช้ภาษา C) มันไม่ได้
Yusuf Husainy

3
คุ้มค่าที่จะกล่าวถึงมันใช้งานได้ดีกับ MarkDown ❤
chesterbr

3
ฉันไม่สามารถตัดบรรทัดรหัสด้วย ReWrap ตามที่ @YusufHusainy ชี้ให้เห็น
Fawwaz Yusran

39

น่าเสียดายที่ VSCode ยังไม่มีคุณสมบัตินี้ แต่เรายังคงสามารถทำให้มันใกล้เคียงกับคุณลักษณะที่สวยงามของการตัดคำอัตโนมัติเป็นกลุ่ม


ขั้นแรก

เราจำเป็นต้องตั้งค่าคุณสมบัติ soft word wrap ใน VSCode

  1. Code => Preferences => Settingsเปิดการตั้งค่าผ่านทาง VSCode
  2. เพิ่มการตั้งค่าตัวแก้ไข 3 บรรทัดนี้

    "editor.wordWrap": "wordWrapColumn",
    "editor.wrappingIndent": "same",
    "editor.wordWrapColumn": n
    

    อย่าลืมเปลี่ยน ( n ) ด้วยความยาวของคอลัมน์ที่คุณต้องการ สำหรับฉันแล้วฉันรู้สึกสบายใจกว่าที่จะตั้งค่าเป็น 60

  3. บันทึกการตั้งค่านี้

จุดประสงค์หลักของขั้นตอนแรกนี้คือเพื่อให้เรารู้สึกสะดวกสบายมากขึ้นเมื่อพิมพ์เพราะเราไม่จำเป็นต้องพิมพ์ด้วยตนเองEnterและดูข้อความยาว ๆ


ขั้นตอนที่สอง

เราจำเป็นต้องมีการติดตั้งเป็นกลุ่มจำลองสำหรับ VSCodevim textwidthและการตั้งค่า

  1. ติดตั้ง Vim emulation ผ่านส่วนขยาย VSCode
  2. Code => Preferences => Settingsเปิดการตั้งค่าผ่านทาง VSCode
  3. เพิ่มบรรทัดของการตั้งค่ากลุ่มนี้

    "vim.textwidth": n,
    

    อย่าลืมเปลี่ยน ( n ) ด้วยความยาวของคอลัมน์ที่คุณต้องการ สำหรับฉันฉันจะตั้งค่านี้ให้เหมือนกันกับ ( n ) ในขั้นตอนแรก

  4. บันทึกการตั้งค่านี้


การใช้งานจริง

เมื่อคุณเขียนเอกสารทั้งฉบับเสร็จแล้วคุณสามารถจัดรูปแบบให้เป็นเส้นแบบแข็งได้โดยใช้วิธีนี้

  1. บล็อกข้อความทั้งหมดโดยใช้โหมดเส้นภาพ (Shift + v)
  2. พิมพ์'gq'

คุณพูดว่า "ยัง" คุณรู้แผนการหรืองานที่กำลังดำเนินอยู่หรือไม่?
oli_obk

ไม่ฉันไม่แน่ใจ ฉันมีแผนที่จะเสนอฟีเจอร์นี้ให้กับทีม VSCode dev นั่นเป็นเหตุผลที่ฉันพูดว่า "ยัง" เพราะยังอาจมีความเป็นไปได้ที่จะเพิ่มฟีเจอร์นี้ในอนาคตของ VSCode
Wanda Ichsanul Isra


"โหมดเส้นภาพ" หมายถึงอะไร? การใช้ Shift + v เพียงแค่ป้อนตัวพิมพ์ใหญ่ V ลงในตัวแก้ไข
user1081679

พิมพ์เมื่อคุณอยู่ในโหมดปกติไม่ใช่โหมดแทรก
Wanda Ichsanul Isra

18

ตอนนี้ VSCode รองรับการตัดอัตโนมัติออกจากกล่อง

การตั้งค่า -> แก้ไขข้อความ -> 3 ตัวเลือกสุดท้าย (ณ วันนี้) มีไว้สำหรับการจัดเรียงอัตโนมัติ

  1. Word Wrap (ควบคุมวิธีการตัดบรรทัด)
  2. Word Wrap Column (ควบคุมคอลัมน์การตัดของตัวแก้ไข)
  3. การห่อเยื้อง (ควบคุมการเยื้องของเส้นที่ห่อ)

โดยค่าเริ่มต้น Word Wrap ปิดอยู่


27
ใช้สำหรับการตัด "แบบอ่อน" หรือที่เรียกว่าการตัดเมื่อแสดงในโปรแกรมแก้ไข แต่ไม่ได้ตัดข้อความจริงของคุณ
forivall

3

ขณะนี้มีคำขอเปิดสำหรับสิ่งนี้ในตัวติดตาม VS Code Issue บน GitHub คุณสามารถค้นหาได้ที่นี่


ขออภัยขณะนี้ปัญหาถูกปิดและหัวข้อถูกล็อก "เราพยายามรักษา VS Code แบบลีน" :(
rbrtl

ใช่ปิดแน่นอน
Mark Carpenter Jr

2

ความคิดเห็นแบบ Hard Wrap

ใช้นามสกุล rewrap ไป

รหัส Soft Wrap

เพิ่มการตั้งค่าต่อไปนี้ (แทนที่ความกว้างของคอลัมน์ด้วยความต้องการของคุณ): "editor.wordWrapColumn": 100

จากนั้นเพิ่ม"editor.wordWrap": "wordWrapColumn"(ล้อมรอบคอลัมน์) หรือ"editor.wordWrap": "bounded"(ตัดที่คอลัมน์หรือวิวพอร์ต)

ความคิดเห็นแบบ Hard Wrap และ Soft Wrap Code

น่าเสียดายที่ส่วนขยายและการตั้งค่า VSCode เล่นได้ไม่ดี

อย่าลังเลที่จะโหวตคำขอคุณสมบัตินี้


1

ตั้งแต่ปี 2020 และหากคุณใช้Prettier - Code formatterปลั๊กอิน:

Go to Plugins -> Find Prettier -> Cog -> Extension Settings -> Prettier: Print Width Fit code within this line limitและตั้งค่าตามที่คุณต้องการ โดยค่าเริ่มต้นคือ 80

เมื่อคุณบันทึกไฟล์ Prettier จะจัดรูปแบบโดยอัตโนมัติ


1
ทำงานได้อย่างสมบูรณ์แบบสำหรับรหัส ในการทำให้เป็นรูปแบบไฟล์ Markdown ด้วยให้ตั้งค่าproseWrapเป็นalways(ค่าเริ่มต้นคือpreserve)
Max Ivanov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.