การเลือกคอลัมน์ในรหัส VS


228

VS Code รองรับการเลือกคอลัมน์ข้อความหรือไม่? ฉันยังไม่พบคุณสมบัตินี้ดังนั้นฉันสงสัยว่ามันถูกซ่อนอยู่ที่ไหนสักแห่ง ฉันคุ้นเคยกับการกด Alt ค้างไว้ในขณะที่เลือกข้อความ แต่ VS Code ไม่ทำงานในลักษณะนี้


9
แน่ใจ. กดปุ่ม Alt ค้างไว้แล้วเลือกคอลัมน์ของข้อความ มันอยู่ที่นั่นนานเท่าที่ฉันจำได้
ChiliYago

1
0.10.11 ไม่ได้เลือกคอลัมน์ข้อความสำหรับฉัน กำลังมองหาคุณสมบัติด้วย
slestak

ดูเหมือนว่าจะมีงานบางอย่างในนั้น github.com/Microsoft/vscode/issues/4092
slestak

6
ตั้งแต่เดือนเมษายน 2018 (รุ่น 1.23) เราสามารถใช้ปุ่มกลางของเมาส์เพื่อเลือกหลายคอลัมน์ code.visualstudio.com/updates/…
blueray

รหัส VS ไม่มีการเลือกคอลัมน์จริง เปรียบเทียบ: คอลัมน์ที่เกิดขึ้นจริงเลือกที่จะแปลกคอลัมน์ไม่ได้จริงๆ VSCode ของเลือก กำลังรอ VSCode ให้การสนับสนุนพื้นที่เสมือนเพื่อให้สามารถเลือกคอลัมน์จริงได้
gman

คำตอบ:


302

ใน Visual Studio Code เวอร์ชัน 1.0 ตอนนี้คุณสามารถเลือกคอลัมน์โดยกดShift+ ค้างไว้Altจากนั้นคลิกและลากด้วยเมาส์ สิ่งนี้สามารถทำได้โดยใช้เพียงแค่แป้นพิมพ์โดยกดCtrl+ Shift+ ค้างไว้Altจากนั้นใช้ปุ่มลูกศร


33
มันคือ "คลิก Shift + alt + drag" จริงๆ สะดวกน้อยกว่า "alt + drag" ของ VS classic มีวิธีใดที่จะทำให้ VS Code ทำงานเหมือนกับ VS หรือไม่
Steve

9
File > Preferences > Keyboard Shortcuts@ Steve จากนั้นค้นหาcursorColumnSelectจากนั้นคุณสามารถแก้ไขแป้นพิมพ์ลัด สิ่งนี้ทำกับ VS Code เวอร์ชั่น 1.22 โปรดทราบcolumnSelectว่าสิ่งที่คุณจะต้องเปลี่ยนสำหรับShift+ Alt+ ลาก แต่ตอนนี้ไม่มีวิธีลงทะเบียนเหตุการณ์ของปุ่มเมาส์ในอิเล็กตรอน
tom_mai78101

9
นี่ไม่ใช่คอลัมน์ที่เลือกตามนิยามของเครื่องมือแก้ไขที่เคยมีการเลือกคอลัมน์ VSCode ไม่ได้ใส่คอลัมน์ผ่านพื้นที่เสมือนทำให้มันไร้ประโยชน์เพราะไม่ใช่คอลัมน์จริงๆ เปรียบเทียบคอลัมน์จริงเลือกกับคอลัมน์ที่ไม่น่าแปลกใจของ VSCode เลือก
gman

2
@FranklinYu, สตูดิโอภาพ (ไม่ vscode) , emacs , Intelli-J , Notepad ++ , SlickEditและอื่น ๆ อีกมากมาย ... รับใช้การแก้ไขคอลัมน์จริงอย่างน้อยตั้งแต่ช่วงสั้น ๆ ในช่วงปลายยุค 80 ไม่ได้บอกว่านี่เป็นครั้งแรกที่ฉันเริ่มใช้และต้องการคุณสมบัติและพบว่าบรรณาธิการที่ขาดหายไปนั้นเป็นอุปสรรคต่อฉัน
gman

7
ความจริงที่ว่าฉันต้อง google มันและมาที่นี่ทุกครั้งที่ฉันต้องทำสิ่งนี้หมายความว่าทางลัดนี้ไม่ดีพอ ..
อเล็กซ์ R

77

บน macOS: Shift+ Optionและเมาส์หรือ Shift+ Option+ Cmdและปุ่มลูกศร


1
สำหรับฉันมันคือ Shift + Cmd และเม้าส์ อาจจะมีการเปลี่ยนแปลงหรือไม่
Lars Nyström

1
โปรดอัปเดตคำตอบเนื่องจากเป็น Shift + Cmd บน OSX
Kevin Farrugia

2
มันไม่ได้เปลี่ยน ของคุณคือ Shift + Cmd เพราะคุณเลือก "การเลือก> เปลี่ยนเป็น Cmd + คลิกเพื่อดูเคอร์เซอร์หลายตัว"
Eric

@Eric โดยทั่วไปฉันมีค่าเริ่มต้นยังไม่ได้เลือกตัวเลือกนั้นและ Shift + Cmd สำหรับฉันใน vscode บุคคลภายใน 1.31 สำหรับ mac 10.14
Peter Nore

เริ่มต้นคือShift + ตัวเลือก หากคุณเลือก "การเลือก> เปลี่ยนเป็น Cmd + คลิกสำหรับ Multi-Cursor" จากนั้นจะเปลี่ยนเป็น Shift + Cmd หากคุณเลือก "การเลือก> เปลี่ยนเป็น Alt + คลิกสำหรับมัลติเคอร์เซอร์" จากนั้นจะเปลี่ยนกลับ
DrStrangepork

8

ฉันเพิ่งเผยแพร่ส่วนขยายสำหรับ Visual Studio Codeที่แปลงการเลือกหลายบรรทัดเป็นการเลือกคอลัมน์ มันเลียนแบบToggle Column Selectionคำสั่งของ TextMate และทำหน้าที่เป็นแนวทางสำรองของcommandoptionshiftปุ่มลูกศร + ของ VSCode ซึ่งฉันพบว่าทำงานได้ดีกว่า


ตัวอย่าง AutoHotKey ของคุณไม่มีบรรทัดนี้ที่ด้านบนSetTitleMatchMode, 2เพื่อให้ยอมรับชื่อไวด์การ์ด หน้าต่าง VSCode จะแสดงFilename.txt - MyFolder - Visual Studio Code
Jack

@ แจ็คฉันไม่คุ้นเคยกับวิธีการทำงานของ AutoHotKey (คำแนะนำเหล่านั้นมาจากการประชาสัมพันธ์จากบุคคลอื่น) แต่ดูเหมือนคุณกำลังบอกว่าฮอตคีย์ปัจจุบันเปิดใช้งานในทุกแอปไม่ใช่แค่ VSCode? ฉันไม่ต้องการทำให้ชื่อหน้าต่างตรงกันมากเกินไปเนื่องจากฉันรู้ว่าข้อมูลในชื่อหน้าต่างนั้นผู้ใช้สามารถกำหนดค่าได้
Erik P. Hansen

Visual Studio Codeไม่มีในขณะนี้ก็ไม่ได้เรียกเลยเพราะมันไม่เคยพบข้อความที่แน่นอน จำเป็นต้องตั้งค่าโหมดจับคู่ชื่อเรื่องเป็น 2 จึงค้นหาว่าชื่อมีข้อความ
แจ็ค

@ แจ็คขอบคุณสำหรับเคล็ดลับ! ฉันได้อัปเดต readme แล้ว หวังว่าคำแนะนำจะใช้ได้ในตอนนี้ แต่ฉันไม่สามารถทดสอบได้เพราะฉันไม่สามารถเข้าถึงเครื่อง Windows ได้ในวันนี้
Erik P. Hansen


1

บน Mac เพื่อใช้เฉพาะแป้นพิมพ์ฉันต้องใช้Cmd+ Shift+ Optจากนั้นกดแป้นลูกศร

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