เลือกหลายรายการใน Visual Studio หรือไม่


90

มีวิธีเลือกข้อความที่ไม่ติดกัน (แยกกันโดยสิ้นเชิง) ใน VS หรือไม่? ฉันสามารถทำได้ใน MS Word โดยเลือกข้อความแยกกันโดยกดปุ่ม Ctrl ค้างไว้ดังนี้:

ใส่คำอธิบายภาพที่นี่

เวอร์ชันของฉันคือ 11

แก้ไข:ฉันไม่ได้พูดถึงการAlt+Selectเลือกบล็อก นอกจากนี้ฉันชอบที่จะดูว่ามีเทคนิคใน Notepad ++ หรือไม่


1
คุณกำลังถามเกี่ยวกับ Visual Studio 2012 หรือ Notepad ++?
Oded

@ ฉันคิดว่ามันชัดเจนว่าคำถามเกี่ยวกับ VS (รวมอยู่ในชื่อด้วย) สิ่งที่เกี่ยวกับ Notepad ++ เป็นคำถามโบนัส
nawfal

2
เท่าที่ฉันรู้นี่เป็นไปไม่ได้ในทั้งสองอย่าง
Oded


ขึ้นอยู่กับสิ่งที่คุณต้องการทำกับสิ่งที่เลือกคุณอาจสามารถบรรลุผลลัพธ์สุดท้ายด้วยการค้นหา regex / string
MA

คำตอบ:


96

การแก้ไขเคอร์เซอร์หลายเคอร์เซอร์ได้รับการสนับสนุนโดยกำเนิดใน Visual Studio โดยเริ่มตั้งแต่การอัปเดตเวอร์ชัน 2017 8 ต่อไปนี้เป็นส่วนแยกของเอกสาร :

  • Ctrl+ Alt+ คลิก: เพิ่มคาเร็ตรอง
  • Ctrl+ Alt+ ดับเบิลคลิก: เพิ่มการเลือกคำรอง
  • Ctrl+ Alt+ คลิก + ลาก: เพิ่มตัวเลือกรอง
  • Shift+ Alt+ .: เพิ่มข้อความที่ตรงกันถัดไปเป็นการเลือก
  • Shift + Alt + ;: เพิ่มข้อความที่ตรงกันทั้งหมดเป็นการเลือก
  • Shift + Alt + ,: ลบเหตุการณ์ที่เลือกล่าสุด
  • Shift + Alt + /: ข้ามเหตุการณ์ที่ตรงกันถัดไป
  • Alt + คลิก: เพิ่มการเลือกกล่อง
  • Esc หรือคลิก: ล้างการเลือกทั้งหมด

คำสั่งเหล่านี้บางคำสั่งมีอยู่ในEditเมนูด้วย:

เมนูหลาย Carets


1
ฉันไม่เห็นตัวเลือกเหล่านี้ใน 2017 ver 15.9.3
Urasquirrel

ดูเหมือนว่าใน 15.9.3 คำสั่งในเมนูเป็นเพียงสองคำสั่งแรก
Gian Marco

2
ลิงค์อัปเดต: docs.microsoft.com/en-us/visualstudio/ide/…
brownmagik352

2
ฉันสงสัยว่าพวกเขาจะให้การสนับสนุนหลายคาเร็ตอย่างเหมาะสมอย่างที่ JetBrains มีมาหลายปีแล้วหรือไม่ ลองสร้างคาเร็ตสองสามคำเลือกคำแล้วคัดลอกวาง VS วางสองครั้ง (กล่าวคือวางการเลือกทั้งหมดที่ทำด้วยคาเร็ตทั้งสองต่อแต่ละคาเร็ตฉันนึกไม่ออกว่าเมื่อไหร่จะเป็นพฤติกรรมที่พึงปรารถนาพวกเขาควรวางเพียงครั้งเดียวนอกจากนี้ JetBrains ยังมีทางลัด CTRL + CTRL ซึ่ง ช่วยเพิ่ม CARETS เมื่อกดขึ้นหรือลงลูกศร (ไปเรื่อย ๆ ในขณะที่มีการกด CTRL) มันเป็นเพียงเพื่อให้มีประสิทธิภาพมากขึ้นกว่าการดำเนิน VS' ที่จุดนี้..
OBE

@obe หรือชอบประเสริฐ. วิธีที่รองรับอยู่ในขณะนี้ไม่มีประโยชน์สำหรับฉัน
shashwat

55

มีส่วนขยายใหม่สำหรับ Visual Studio 2017 ที่เรียกว่าSelectNextOccurrenceซึ่งฟรีและโอเพ่นซอร์ส

ส่วนขยายนี้ช่วยให้สามารถเลือกเหตุการณ์ถัดไปของข้อความที่เลือกเพื่อแก้ไขได้

มีจุดมุ่งหมายเพื่อจำลองคำสั่ง Ctrl + D ของ Sublime Text เพื่อการเข้ารหัสที่เร็วขึ้น

คุณสมบัติ:

  • เลือกรายการถัดไปของการเลือกปัจจุบัน
  • ข้ามเหตุการณ์
  • ยกเลิกการเกิดขึ้น
  • เพิ่มคาเร็ตด้านบน / ด้านล่าง
  • ใช้หลายคาเร็ตเพื่อแก้ไข (- Altคลิกเพื่อเพิ่มคาเร็ต)

คำสั่ง Visual Studio:

  • SelectNextOccurrence.SelectNextOccurrenceถูกผูกไว้กับCtrl+ Dโดยค่าเริ่มต้น
  • SelectNextOccurrence.SkipOccurrenceไม่ถูกผูกมัดโดยค่าเริ่มต้น (แนะนำCtrl+ K, Ctrl+ D)
  • SelectNextOccurrence.UndoOccurrenceไม่ถูกผูกมัดโดยค่าเริ่มต้น (แนะนำCtrl+ U)
  • SelectNextOccurrence.AddCaretAboveไม่ถูกผูกมัดโดยค่าเริ่มต้น (แนะนำCtrl+ Alt+ Up)
  • SelectNextOccurrence.AddCaretBelowไม่ถูกผูกมัดโดยค่าเริ่มต้น (แนะนำCtrl+ Alt+ Down)

ตัวเลือก SelectNextOccurrence

https://marketplace.visualstudio.com/items?itemName=thomaswelen.SelectNextOccurrence

https://github.com/2mas/SelectNextOccurrence


1
สมบูรณ์แบบ! นี่คือหนึ่ง การเลือกหลายรายการและคาเร็ตทำงานได้ดีมาก ทดสอบกับ VS Community 2017
Dave

1
@Dave ใช่นามสกุลนี้ดีมาก ลองให้บทวิจารณ์ที่ดีและ / หรือนำแสดงโดยโครงการ GitHub หากคุณพบว่ามีประโยชน์
Drew Noakes

ขอบคุณที่ค้นหาส่วนขยายนี้! MixEdit ใช้งานได้ แต่ไม่ได้รับการปรับให้เหมาะสมกับ VS2017 และป๊อปอัปสำหรับทดลองใช้นั้นต่อต้านการผลิต
Bill N.

ไม่ได้ผลสำหรับฉัน Welp ฉันไม่รู้ว่าฉันคาดหวังอะไรจาก ms
Bersan

วิธีแก้ปัญหาที่ยอดเยี่ยมเพียงเพื่อทราบว่าฉันต้องลบการผูกคีย์เริ่มต้นด้วยEdit.Duplicateเนื่องจากพวกเขายังคงได้รับเกียรติแม้ว่าจะเพิ่มCtrl+Dในการผูกคีย์สำหรับSelectNextOccurrence. VS 2019 ทางลัดเริ่มต้น: docs.microsoft.com/en-us/visualstudio/ide/…
Brandon Franklin

31

ใน Visual Studio Shift+Alt+. / Shift+Alt+,

  • Shift+Alt+. - จับคู่คาเร็ต;
  • Shift+Alt+, - ลบคาเร็ตก่อนหน้านี้

ฟังก์ชั่นเช่นเดียวกับใน Ctrl+DVSCode

Tool - Options - Environment - keyboardการตั้งค่ามากขึ้น ถัดไปในการใส่Show commands containingEdit.

Visual Studio Codeนอกจากนี้ยังสามารถใช้สคีแป้นพิมพ์ พร้อมใช้งานสำหรับ Visual Studio 2017

สำหรับข้อสรุปลิงก์ที่ดีVisual Studio แป้นพิมพ์ลัดทั้งหมด


1
ขอบคุณสำหรับคำตอบของคุณผู้ใช้อินเทอร์เน็ตที่ใจดี
Urasquirrel

3
คำตอบที่ดี เราต้องการคำสั่ง ฉันไม่รู้ว่าทำไมทุกคนถึงตอบยาว ๆ แบบนี้ฮ่า ๆ ขอบคุณ
Javi

22

ส่วนขยายMixEditสำหรับ Visual Studio ช่วยให้คุณสามารถทำ multiediting ในแบบที่คุณอธิบายได้ รองรับหลายคาเร็ตและการเลือกหลายแบบ


8
หากคุณกำลังมองหาบางสิ่งบางอย่างเช่นข้อความประเสริฐนี่แหล่ะ!
Kenial

2
ในกรณีที่มีใครบางคนสงสัยว่าวิธีการที่จะประสบความสำเร็จหลายตัวเลือกใน MixEdit Altโดยการดับเบิลคลิกที่คำพูดหลังจากที่กด เช่นเดียวกับใน MS Word ยกเว้นจะอยู่Altที่นี่แทนCtrl. MixEdit ยังมีตัวเลือกหลายตัวเลือกที่มีประโยชน์อื่น ๆ อีกมากมาย โปรดทราบว่าฟรีสำหรับการประเมินเท่านั้น!
nawfal

2
ฉันไม่สามารถซื้อใบอนุญาต MixEdit ได้อีกต่อไป ตรวจสอบเว็บไซต์ มีความคิดอย่างไรว่าฉันจะอนุญาตให้ใช้สิทธิ์และกำจัดป๊อปอัปที่น่ารำคาญได้อย่างไร
vullnetyy

3
นามสกุลนี้ไม่ฟรี !!
Diogo Cid

6
มีทางเลือกอื่นที่ฟรีหรือมีความสามารถในการซื้อเพื่อที่คุณจะได้ไม่ต้องรับการแจ้งเตือนที่น่ารำคาญ? หรือความสามารถในการลบออกจาก MixEdit หากไม่มีวิธีซื้อ
Sonic Soul


14

ใน Visual Studio 2019 คุณสามารถวางคาเร็ตของคุณในตำแหน่งที่ถูกต้องจากนั้นกด SHIFT ALT และ (จุด) เพื่อเลือกเหตุการณ์ถัดไป


7

เพียงเพื่อทราบ

MixEdit ไม่ได้ฟรีอย่างสมบูรณ์

"ขณะนี้ซอฟต์แวร์นี้ไม่ได้รับอนุญาตให้ใช้งานสำหรับผู้ใช้รายใดและกำลังทำงานในโหมดการประเมินผล MIXEDIT อาจดาวน์โหลดและประเมินได้ฟรีอย่างไรก็ตามต้องซื้อใบอนุญาตเพื่อใช้งานต่อไป"

เมื่อติดตั้งและใช้งานป๊อปอัปจะเปลี่ยนเส้นทางไปยังหน้าเว็บซึ่งคล้ายกับข้อความป๊อปอัปซอฟต์แวร์ที่ไม่มีใบอนุญาตของ SublimeText


2
และตอนนี้คุณยังซื้อไม่ได้ มันเพิ่งปรากฏกล่องการแจ้งเตือนเพื่อขอใบอนุญาต
Sonic Soul

6

สำหรับ Visual Studio Code

ได้รับคำถามนี้เพราะฉันกำลังมองหาวิธีเลือกคำหลาย ๆ คำด้วยการคลิกเมาส์ที่ VS Code ซึ่งควรทำได้โดยใช้alt+clickแต่การผูกแป้นนี้ไม่ทำงาน (ฉันคิดว่ามันเป็นสิ่งที่เกี่ยวข้องกับระบบปฏิบัติการUbuntuของฉัน)

ctrl+clickสำหรับใครที่กำลังมองหาบางสิ่งบางอย่างที่คล้ายกันลองเปลี่ยนกุญแจสำคัญในการ

ไปที่Selection>Switch to Ctrl+Click for Multi Cursor


แน่ใจนะว่าไม่ได้พูดถึง VS Code?
nawfal

ใช่ฉัน ... ฉันควรลบมันหรือตั้งชื่อเป็น "for vs code"? ฉันกำลังมองหารหัสเมื่อมาถึงที่นี่
jpenna

2
ไม่จำเป็นต้องลบจะเป็นประโยชน์สำหรับผู้อื่น เพียงแค่พูดถึงคำตอบ
nawfal

6

อัปเดต: ตอนนี้ส่วนขยายMixEditให้ความสามารถนี้

ส่วนขยายMultiEditสำหรับ VS ช่วยให้สามารถทำสิ่งที่คล้ายกันได้ (ไม่รองรับการเลือกหลายตัวในการเขียนนี้เพียงแค่หลายคาเร็ต)

ตรงไปที่ Hanselman's เพื่อดู gif แบบเคลื่อนไหวอย่างรวดเร็วในการดำเนินการนี้: การแก้ไขพร้อมกันสำหรับ Visual Studio พร้อมส่วนขยาย MultiEdit ฟรี


1
ส่วนขยายนี้ไม่รองรับการเลือกหลายรายการตามที่ร้องขอในคำถามเดิม ขยาย MixEditไม่
mcw

2
MixEdit ไม่มีอยู่เมื่อ OP โพสต์คำถามของเขา ฉันตอบอย่างสุดความสามารถ
Mrchief

5

ฉันไม่พบอะไรในตัวซึ่งน่าเศร้า มีฟังก์ชันนี้ในCodeRushแม้ว่า

ด้วย Notepad ++ คุณลักษณะนี้มาในตัวเพียงเปิดการแก้ไขหลายรายการจาก

การตั้งค่า> การตั้งค่า> การแก้ไข> การตั้งค่าการแก้ไขหลายรายการ

แต่มันไม่ง่ายเหมือน MS Word ซึ่งให้คุณเลือกสองคำโดยดับเบิลคลิกที่คำเหล่านั้น (หลังจาก Ctrl แน่นอน)


4

ในภาพ 2019 เปิดตัวเลือกเพื่อแสดงคำอธิบายภาพทั้งหมด ที่นี่

และเลือกหลายรายการ: เก็บCtrl + Altจากนั้นคลิกตำแหน่งที่คุณต้องการหรือShift + Altจากนั้นคลิกตำแหน่งเพื่อเลือกหลายบรรทัดตั้งแต่ต้นจนจบบรรทัดที่คลิก



0

ตอนนี้ปลั๊กอินเป็นเทคนิคหลายบรรทัด ปุ่มสิ้นสุดและปุ่มเริ่มต้นทำให้การเลือกไม่สมบูรณ์


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