ฉันจะได้รับเคอร์เซอร์ทุกบรรทัดใน vscode ได้อย่างไร


107

ฉันกำลังพยายามใช้ฟังก์ชัน multi cursor ของ vscode ในไฟล์ขนาดใหญ่ (ish) ไฟล์มีขนาดใหญ่เกินไปที่จะเลือกทุกบรรทัดทีละบรรทัดโดยใช้ ctrl-alt-up หรือ down ใน Sublime-text ฉันจะเลือกทุกอย่างและกด ctrl-shift-l มีสิ่งที่คล้ายกันใน vscode ฉันได้ลองใช้การค้นหา regex สำหรับ ^ แต่นั่นทำให้ฉันมีข้อผิดพลาดที่ระบุว่า "นิพจน์ตรงกันทุกอย่าง"

คำตอบ:


200

คำสั่ง Selection / Add Cursors to Line Ends altshiftiจะวางเคอร์เซอร์ไว้ทุกบรรทัดในการเลือกปัจจุบัน (สำหรับการใช้งาน Mac optshifti)

เคล็ดลับ: คุณสามารถดึงแผ่นอ้างอิงทางลัดแป้นพิมพ์ด้วยctrlk, ctrls(ในขณะที่ทั้งสองคอมโบแป้นพิมพ์ในลำดับ) (สำหรับการใช้งาน Mac cmdk, cmds)


2
เมื่อฉันลองเคอร์เซอร์จะไปที่จุดสิ้นสุดของแต่ละบรรทัด ฉันกำลังมองหาจุดเริ่มต้นของแต่ละบรรทัด ฉันเห็นส่วนขยายที่จะช่วยให้สามารถผูกคีย์สำหรับ "เคอร์เซอร์ที่จุดเริ่มต้นของบรรทัด" ได้ แต่ฉันสงสัยว่าเป็นไปได้ไหมที่จะทำใน vanilla VS Code?
Tiffany

19
@ ทิฟฟานี่กดhomeแป้นหลัง.
ZachB

3
นั่นน่าจะชัดเจนสำหรับฉัน แต่ยังไงก็ขอบคุณ!
Tiffany

สำหรับการอ้างอิงในการวาดเคอร์เซอร์ของคุณโดยไม่ต้องทำการเลือกก่อนให้ใช้ alt + shift + drag selection ผู้ที่คุ้นเคยกับ Sublime Text จะรู้เรื่องนี้โดยใช้ alt + drag selection
palmi

2
homeสำหรับ Mac คือfn+left
eibersji

22

กดAlt+ Shiftแล้วเลือกบล็อก จากนั้นกดEndหรือRightปุ่ม คุณได้รับเลือกแต่ละบรรทัด

ฉันใช้เวอร์ชัน VSCode 1.5.3 ใน Windows


4
นี่เป็นวิธีที่ดี แต่หนึ่งในไม่กี่สิ่งที่ฉันพลาดไปจากข้อความประเสริฐคือการctrl + shift + Lเพิ่มเคอร์เซอร์ให้กับบรรทัดที่เลือกทั้งหมด
Des Horsley

12
@DesHorsley alt+shift+Iผมคิดว่าคุณกำลังมองหา
ZachB

3
@ZachB คุณตำนาน. ขอบคุณ!
Des Horsley

@ ZachB. กรุณาให้มากกว่าคำตอบเพื่อที่ฉันจะได้ยอมรับมัน
feihtthief

หากคุณได้เปลี่ยนคีย์เคอร์เซอร์ของคุณหลายไปctrlcmdแทนaltแล้วทางลัดสำหรับเรื่องนี้คือหรือctrl + shift + drag cmd + shift + drag
กางเกง

11
  • จองAlt+ Shift+i

  • กดHome( fn+ ->Mac) สำหรับขวาสุดหรือEndซ้ายสุด ( fn+ <-Mac)

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


คำตอบนี้ช่วยฉันประหยัดเวลาได้มาก BTW คุณบันทึก gif นี้อย่างไร?
Li Jinyao

บน Mac ฉันใช้gifoxสำหรับ gif แบบนั้น
snr

ประหยัดเวลาได้มาก
MA Salman

5

คุณลักษณะนี้ถูกเรียกใช้split selection into linesในบรรณาธิการหลายคน

  • Sublime Text ใช้การผูกแป้นเริ่มต้น CTRLSHIFT L
  • VSCode ใช้ ALTSHIFTI
  • สำหรับ Atom คุณต้องแก้ไขคีย์แมปของคุณให้เป็นแบบนี้
'.platform-win32 .editor, .platform-linux .editor':
  'ctrl-shift-L': 'ตัวแก้ไข: แยกการเลือกออกเป็นบรรทัด' 

1

ติดตั้งส่วนขยายSublime คำสั่ง

[Sublime Commands] เพิ่มคำสั่งจาก Sublime Text เป็น VS Code: Transpose, Expand Selection to Line, Split into Lines , Join Lines

(อย่าลืมเพิ่ม keybinding (s) จากหน้ารายละเอียดส่วนขยายของคุณkeybindings.json)


VS Code ไม่มีคำสั่ง "แยกเป็นบรรทัด" อยู่แล้วใช่หรือไม่

ใช่ใช่แล้ว อย่างไรก็ตามมันแตกต่างจากใน Sublime

ใน VS Code เมื่อคุณแบ่งออกเป็นบรรทัดการเลือกของคุณจะถูกยกเลิกการเลือกและเคอร์เซอร์จะปรากฏที่ส่วนท้ายของแต่ละบรรทัดที่เลือกไว้ (ยกเว้นบรรทัดสุดท้ายที่เคอร์เซอร์ปรากฏที่ส่วนท้ายของการเลือก)

ใน Sublime เมื่อคุณแบ่งออกเป็นบรรทัดเคอร์เซอร์จะปรากฏที่ส่วนท้ายของแต่ละบรรทัด (โดยมีข้อยกเว้นเช่นเดียวกับใน VS Code) และการเลือกจะถูกแบ่งออกในแต่ละบรรทัดและ "กำหนด" ให้กับบรรทัดเดียวกัน


โปรดทราบว่า OP กำลังถามถึงวิธีการทำงานบน vscode เนื่องจากพวกเขารู้อยู่แล้วว่ามันทำงานอย่างไรในประเสริฐ
alamoot

0

ฉันมีปัญหาเดียวกันฉันเคย Alt + ลากเพื่อทำ 'การเลือกกล่อง' ในวิชวลสตูดิโอ แต่มันไม่ทำงานในโค้ด

ตอนนี้ดูเหมือนว่าจะเป็นไปไม่ได้ที่จะทำแตกต่างจากการเลือกทุกบรรทัด

อย่างไรก็ตามปลั๊กอินควรได้รับการสนับสนุนในไม่ช้าดังนั้นเราจะเห็นปลั๊กอินสำหรับสิ่งนี้หากไม่ได้ติดตั้งโดย microsoft โดยตรง

จาก Visual Studio uservoice ฟอรัม:

เราวางแผนที่จะให้การสนับสนุนปลั๊กอินสำหรับ Visual Studio Code ขอขอบคุณที่สนใจและค้นหารายละเอียดเพิ่มเติมในบล็อกของเราในอีกไม่กี่สัปดาห์ข้างหน้า http://blogs.msdn.com/b/vscode

สำหรับตัวอย่างเรากำลังมองหาข้อเสนอแนะประเภทนี้ ให้มันมา.

Sean McBreen - สมาชิกทีม VS Code

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