เคอร์เซอร์หลายตัวในรหัส Visual Studio [ปิด]


579

คุณจะสร้างเคอร์เซอร์หลายตัวเมื่อแก้ไขใน VS Code ได้อย่างไร ฉันสนใจทั้ง macOS และ Windows


114
เพียงแค่Altกดปุ่มค้างไว้และเริ่มคลิกในที่ต่างๆ แค่นั้นแหละ.
ชื่อผู้ใช้

40
ลูกศร CMD + Alt + Down คือสิ่งที่คุณต้องการ stackoverflow.com/questions/30037808/…
วาเลนไทน์ Bondar

4
หากคุณใช้ mac SHIFT + CTRL + DOWN / UP เป็นสิ่งที่คุณต้องการ ณ วันที่ 1.14.2
Ben Creasy

2
นอกจากนี้ดูเหมือนว่า Cmd + Alt + Down จะถูกแมปโดย editor.action.goToDeclaration โดยค่าเริ่มต้นตั้งแต่วันที่ 1.14.2
Ben Creasy

14
มันเป็นความอัปยศที่คนตัดสินใจปิดหัวข้อที่มีความสนใจอย่างชัดเจนเช่นนั้นมีคะแนนเกือบ 400 คะแนนและยังมีผู้เข้าชมเกือบ 4 ปีหลังจากโพสต์ ฉันหวังว่าผู้แก้ไข SO จะผ่อนคลายบ้างเล็กน้อยและให้ชุมชนเติบโตและสนับสนุนซึ่งกันและกัน ฉันอยากรู้ว่าคำตอบที่ตรงประเด็นจะตัดกับความรู้ 2019 ได้อย่างไร :(
Mike Williamson

คำตอบ:


580

กดAltและคลิก สิ่งนี้ใช้ได้กับ Windows และ Linux * และควรใช้กับ Mac ได้เช่นกัน

ขณะนี้มีคุณลักษณะหลายเคอร์เซอร์เพิ่มเติมใน Visual Studio Code 0.2:

การปรับปรุงหลายเคอร์เซอร์
Ctrl+D( Cmd+Dบน Mac) เลือกคำที่อยู่ภายใต้เคอร์เซอร์ถัดไปหรือของการเลือกปัจจุบัน
Ctrl+K Ctrl+Dย้ายเคอร์เซอร์ที่เพิ่มล่าสุดไปยังการเกิดขึ้นของคำภายใต้เคอร์เซอร์หรือการเลือกปัจจุบัน
คำสั่งใช้ matchCase โดยค่าเริ่มต้น หากวิดเจ็ตค้นหาเปิดอยู่การตั้งค่าการค้นหาวิดเจ็ต (matchCase / matchWholeWord) จะถูกนำมาใช้เพื่อกำหนดเหตุการณ์ต่อไป
Ctrl+U( Cmd+Uบน Mac) เพื่อยกเลิกการกระทำของเคอร์เซอร์ครั้งสุดท้ายดังนั้นหากคุณเพิ่มเคอร์เซอร์มากเกินไปหรือทำผิดพลาดคุณสามารถ กดCtrl+U( Cmd+Uบน Mac) เพื่อกลับไปยังสถานะเคอร์เซอร์ก่อนหน้า การเพิ่มเคอร์เซอร์ขึ้นหรือลง ( Ctrl+Alt+Up/ Ctrl+Alt+Down) ( Cmd+Alt+Up/Cmd+Alt+Down บน Mac) ตอนนี้แสดงเคอร์เซอร์ที่เพิ่มล่าสุดเพื่อให้ทำงานกับหลายเคอร์เซอร์ได้ง่ายขึ้นในความสูงวิวพอร์ตมากกว่า 1 ครั้ง (เช่นเลือก 300 บรรทัดและ 80 พอดีในวิวพอร์ต)

ทำให้ง่ายต่อการแนะนำเคอร์เซอร์หลายตัว

* Linux ขัดแย้งหน้าต่างลาก:

บาง distros (เช่น Ubuntu) กำหนดให้ลากหน้าต่างไปAlt+LeftMouseซึ่งจะขัดแย้งกับ VSCode

ดังนั้นรุ่นล่าสุดของ VSCode ช่วยให้คุณสามารถสลับไปมาระหว่างAlt+LeftMouseและCtrl+LeftMouseภายใต้การเลือกเมนูตามรายละเอียดในคำตอบอื่น

หรือคุณสามารถเปลี่ยนปุ่มลัด OS ของคุณโดยใช้gsettingsเป็นที่กล่าวถึงในคำตอบอื่น


20
แป้นพิมพ์ลัด? ฉันได้รับมันคือคำสั่ง + คลิก แต่นั่นคือขั้นต้น .. ไม่ใช่วิธีที่รวดเร็ว: (
Kiba

8
F2 หรือ Ctrl + F2 อาจช่วยได้ แต่ไม่พบอะไรเช่น Ctrl + D
vilicvane

13
Alt + click ดูเหมือนจะไม่ทำงานบน Linux สิ่งที่ได้ทำงานสำหรับฉันคือ Ctrl + Shift + ซ้าย / ขวา / ขึ้น / ลง
Yonatan Simson

18
Alt + Shift + คลิกบน Mac (2017)
ฮอฟฟ์

5
hmmm, ctrl + alt + ขึ้นหรือลงหมุนหน้าจอของฉัน (บน win10) แทนการใช้เคอร์เซอร์หลายตัว
Reinsbrain

158

เคอร์เซอร์ / การเลือกหลายคำ (และหลายบรรทัด) ใน VS Code

หลายคำ:

Windows / OS X:

  • Ctrl+Shift+L/ ⌘+Shift+Lเลือกอินสแตนซ์ทั้งหมดของคำที่ไฮไลต์ปัจจุบัน
  • Ctrl+D/ ⌘+Dเลือกอินสแตนซ์ถัดไป ... และอีกอันหลังจากนั้น ... เป็นต้น

หลายสาย:

สำหรับการเลือกหลายบรรทัดCtrl+Alt+Down / ⌘+Alt+Shift+Downจะขยายการเลือกหรือตำแหน่งเคอร์เซอร์ของคุณไปยังบรรทัดถัดไป Ctrl+Right/ ⌘+Rightจะย้ายไปยังจุดสิ้นสุดของแต่ละบรรทัดไม่ว่าจะนานแค่ไหน Escที่จะหลบหนีหลายสายเลือกตี

ดูการโยงคีย์รหัส VS (ละเอียดอ่อนกับระบบปฏิบัติการ)


15
ฮ่า ๆ ในเครื่องของฉันไดรเวอร์วิดีโอของ Intel มีปุ่มลัด Ctrl-Alt-Down เพื่อทำให้หน้าจอกลับหัว
วิศวกรที่ตรงกันข้ามจาก

3
เหตุใดจึงไม่เหมือน SSMS (และอาจเป็น Visual Studio) ซึ่งใช้ Shift-Alt-Down / Up ไม่ใช่ Ctrl-Alt-Down ???
วิศวกรที่กลับรายการ

@DaveBoltman - ฉันไม่รู้! แต่คุณสามารถปรับแต่งการโยงคีย์ได้
Dave Everitt

2
Ctrl-Alt-Down ทำให้หน้าจอของคุณคว่ำลงหรือไม่ เช่นเดียวกับจำนวนผู้ใช้ที่ต้องการให้อยู่ในฮอตคีย์ 🙄
gman

3
หากต้องการปิดใช้งานคีย์ลัดของ Intel คุณสามารถคลิกขวาที่เดสก์ท็อป> ตัวเลือกกราฟิก> ฮอตคีย์> ปิดใช้งาน
alxgb

138

ฉันมีปัญหากับปุ่ม ALT การแก้ไขคือการเปลี่ยนalt+clickเป็นปุ่มลัดของ Gnome ที่ใช้งานเคอร์เซอร์แบบหลายเคอร์เซอร์ใน VSCode super+clickโดยเรียกใช้:

gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier "<Super>"   

ที่มา: http://2buntu.com/articles/1529/visual-studio-code-comes-to-linux/


7
+1 วิธีนี้ใช้งานได้! เพิ่งตรวจสอบกับ Ubuntu 14.04.05 .. ก่อนหน้านี้ฉันพยายามdconf-editorและCompizConfigเปลี่ยนการตั้งค่าปลั๊กอิน "ย้ายหน้าต่าง" และทำให้เกิดความสับสนและทำให้ Ubuntu ของฉันเกือบพัง
Dimitry K

2
ใช้งานได้ใน Ubuntu!
jonan.pineda

11
ใช้gsettings set org.cinnamon.desktop.wm.preferences mouse-button-modifier "<Super>"สำหรับ Linux Mint (Cinnamon)
vossad01

! น่ากลัว ทำงานบน Ubuntu 16.04
บรูโน่ Gomes

1
หากคุณไม่ต้องการสัมผัสการตั้งค่าเริ่มต้นของระบบคุณอาจใช้ "การเลือก> เปลี่ยนเป็น CTRL + คลิกเพื่อดูเคอร์เซอร์หลายตัว" สิ่งนี้ใช้ได้ใน Linux Mint ดังนั้นจึงควรทำงานใน Ubuntu ด้วย
lsblsb

125

อาจ 2017
เป็นรุ่น 1.13 เพิ่มเคอร์เซอร์หลายตัวด้วยCtrl/ Cmd+Click

VSCodeนักพัฒนาได้แนะนำการตั้งค่าใหม่editor.multiCursorModifierเพื่อเปลี่ยนคีย์ตัวปรับแต่งสำหรับการใช้เคอร์เซอร์หลายตัวกับCmd+ Clickบน macOS และCtrl+ Clickบน Windows และ Linux สิ่งนี้ช่วยให้ผู้ใช้ที่มาจากตัวแก้ไขอื่น ๆ เช่น Sublime Text หรือ Atom ยังคงใช้ตัวดัดแปลงแป้นพิมพ์ที่พวกเขาคุ้นเคย

การตั้งค่าสามารถตั้งค่าเป็น:

  • ctrl/Cmd- Maps ไปยังCtrlบน Windows และCmdบน macOS
  • alt- Altเริ่มต้นที่มีอยู่

นอกจากนี้ยังมีรายการเมนูใหม่ใช้Ctrl+ ClickสำหรับMulti-CursorในSelectionเมนูเพื่อสลับการตั้งค่านี้อย่างรวดเร็ว ป้อนคำอธิบายรูปภาพที่นี่

ไปที่ความหมายและเปิดลิงก์ท่าทางยังจะเคารพการตั้งค่านี้และปรับดังกล่าวว่าพวกเขาไม่ได้มีความขัดแย้ง ตัวอย่างเช่นเมื่อการตั้งค่าctrl/Cmd, เม้าส์หลายสามารถเพิ่มด้วยCtrl/ Cmd+ Clickและการเชื่อมโยงการเปิดหรือไปที่คำจำกัดความสามารถถูกเรียกด้วย+AltClick

ด้วยการแก้ไขปัญหา # 2106 ขณะนี้คุณสามารถลบเคอร์เซอร์ได้โดยใช้ท่าทางเดียวกันที่ด้านบนของตัวเลือกที่มีอยู่


1
ฉันทำไม่ได้เพราะเหตุใด Ctrl + คลิกไม่ทำงาน ไม่ทราบว่ามีตัวเลือกในการสลับ :-)
ankush981

5
การตั้งค่าeditor.multiCursorModifierจากaltเป็น ctrlCmd ทำได้ดีมาก ตอนนี้สิ่งที่ฉันต้องทำก็คือctrl + คลิกและมันจะใช้เคอร์เซอร์หลายตัว :) gracias มาก!
protoEvangelion

ฉันสามารถเปลี่ยนเป็น Ctrl + คลิกได้ผล แต่เพื่อไปยังคำจำกัดความของคลาสหรือบางอย่างหายไปฉันจะแก้ไขได้อย่างไร
Vuong Tran

นี่คือคำตอบที่เป็นประโยชน์ที่สุด ในการแก้ไข CTRL + คลิกส่วนใหญ่จะใช้สำหรับการเลือกหลายรายการ ไม่จำเป็นต้องแก้ไขพฤติกรรมของระบบปฏิบัติการเพื่อให้แก้ไขได้ ตัวเลือกนี้จะปรับเปลี่ยนพฤติกรรมสำหรับการเลือกหลายรายการเป็นรูปแบบที่ใช้บ่อยที่สุด
Ruby Racer

83

ลองCtrl+ Alt+ Shift+ ⬇ / ⬆โดยไม่ใช้เมาส์หรือกด "alt" ค้างไว้แล้วคลิกที่บรรทัดทั้งหมดที่คุณต้องการ

หมายเหตุ : ทดสอบบน Windows


21
CMD+ OPTION+ SHIFT+ ใช้⬇ / ⬆งานได้กับฉันใน Mac ด้วยเวอร์ชั่น 1.15.1
Tyler Collier

2
บน windows 10 ฉันสามารถทำได้โดยไม่ต้องshift
Pini Cheyni

2
คุณสามารถใช้หน้าขึ้น / ลงเพื่อให้ทำงานได้เร็วขึ้น!
Maxime

โดยที่SHIFTมันไม่ทำงานสำหรับฉันขอบคุณ
BartusZak

1
ฉันติดตั้งSmart Multi-cursor extension พร้อมกับคุณสมบัติขั้นสูงพร้อมกับทางลัด Cmd + Alt + (ขึ้น / ลง) เพื่อสร้างมัลติเคอร์เซอร์
Danny

47

Cmd+ Option+ Shift⬇ / ⬆งานสำหรับฉันใน VSCode ใหม่ล่าสุด 1.29.1 และใหม่ล่าสุด OSX High Sierra 10.13.6, Macbook Pro

สิ่งนี้เพิ่มเส้นแนวตั้งขึ้น / ลงบนหน้าจอเช่นOption+ คลิก / ลากแนวตั้งทำใน Sublime Text

ในการเพิ่มเคอร์เซอร์หลาย ๆ ตัวที่จุดใด ๆ ในไฟล์ของคุณรวมถึงหลาย ๆ อันในบรรทัดเดียวกันให้ทำCmd (or Option)+ คลิกที่ใดก็ได้ที่คุณต้องการซึ่งแสดงในวิดีโอนี้ นอกจากนี้คุณยังสามารถค้นหาข้อความ ( Cmd+ F) ที่ซ้ำหลายครั้งจากนั้นกดOption+ Returnเพื่อเพิ่มเคอร์เซอร์ที่ท้ายคำแต่ละคำ


30

บนUbuntuเพื่อเปิดใช้งานการคลิกหลายเคอร์เซอร์คุณจะต้องกำหนด Alt + คลิกใหม่ก่อนโดยเรียกใช้คำสั่งด้านล่าง นี่เป็นเพราะโดยปกติแล้ว Ubuntu จะใช้ทางลัดเองและมีความสำคัญกว่า

> gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier "<Super>"

25

บน XFCE ไปที่ Applications -> Settings -> Settings editor - > xfwm4 -> easy_click(disable value)

ตอนนี้คุณสามารถทำได้Insert Cursorด้วยAlt+ คลิก

ฉันได้ปิดใช้งานการตั้งค่าL / R Workspace ( ctrl+ alt+ L/R) ในSettings -> Window manager -> Keyboard


1
?? XFCE นี่คืออะไร
Martian2049

1
@ Martian2049 เป็น Desktop Environment บนระบบปฏิบัติการ Unix-like (Linux, BSD และอื่น ๆ ) หากคุณยังไม่ทราบคำตอบของฉันอาจไม่เป็นประโยชน์สำหรับคุณไปตรวจสอบคำตอบอื่น ๆ
lava-lava

มันทำงานหลังจากปิดการใช้งาน easy_click สำหรับฉันขอบคุณคุณบันทึกวันของฉัน
Mohamed M. Hagag

มันใช้งานได้สำหรับฉัน ฉันเปลี่ยนใน easy_click ALT เป็น CTRL เนื่องจาก ALT + click สำหรับการย้ายหน้าต่าง
millonesj

คำตอบที่ดี มันเหมาะกับฉัน @ lava-lava
abu abu

23

ในฐานะของ Visual Studio Code เวอร์ชั่น 0.10.9 ตอนนี้คุณสามารถสร้างเคอร์เซอร์หลายตัวจากบรรทัดที่เลือกโดยเลือกหลายบรรทัดและกดShift+Alt+I

หมายเหตุ: สิ่งนี้คล้ายกับCtrl+Shift+Lฟังก์ชั่นของ Sublime Text

ที่มา: https://code.visualstudio.com/updates/vJanuary#_thank-you
PR ที่เกี่ยวข้อง: https://github.com/Microsoft/vscode/pull/1479


1
Shift+Alt+<arrow>ทำงานให้ฉัน ขอบคุณ!
Matt Kneiser

18

ไม่มีผลผูกพันกับสิ่งที่คุณต้องการ

สิ่งเดียวที่เข้ามาใกล้คือCtrl+ F2ซึ่งจะเลือกทั้งหมดในครั้งเดียว

คุณสามารถผูกกับCtrl+ Dทำสิ่งต่อไปนี้:

  • คลิกที่File > Preferences > Keyboard Shortcuts
    คุณควรเห็นบานหน้าต่างที่เต็มไปด้วยการผูกปัจจุบันและด้านขวาของรายการการผูกที่กำหนดเอง
  • ในการเชื่อมปัจจุบันค้นหาCtrl+ F2และคัดลอกทั้งบรรทัดแล้ววางลงในบานหน้าต่างด้านขวา
  • คุณอาจต้องลบเครื่องหมายจุลภาคในตอนท้ายจากนั้นเปลี่ยนCtrl+ F2เป็นCtrl+ Dจากนั้นให้บันทึกไฟล์

ควรมีลักษณะดังนี้:

// Place your key bindings in this file to overwrite the defaults
[
{ "key": "ctrl+d",               "command": "editor.action.changeAll",
                                    "when": "editorTextFocus" }
]

ฉันสามารถทำให้มันเป็นมัลติฟังก์ชันแบบหลายค่าได้หรือไม่ ..
Miguel

@MigueI ยังไม่พบวิธีที่จะทำเช่นนั้น
กล้าหาญ

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

10

Ctrl+ Alt+ ⬇ / ⬆เพิ่มเคอร์เซอร์ด้านบนและด้านล่างบรรทัดปัจจุบัน ยังคงไม่มีที่ไหนใกล้ดีเท่าประเสริฐหรือวงเล็บ ฉันไม่เห็นสิ่งใดเทียบเท่าCtrl+ Dในประเสริฐในไฟล์แป้นพิมพ์ลัด


3
สำหรับ Mac คือ: Alt + Commandและลูกศรขึ้นหรือลง
Leniel Maccaferri

ใน Ubuntu นี่คือCtrl+Shift+Up/Down
tobalr

ใน Windows ที่ดูเหมือนว่าจะเป็น "หมุนหน้าจอ" เป็นค่าเริ่มต้น
Blam

1
ถ้ามันหมุนหน้าจอของคุณนั่นคือไดรเวอร์กราฟฟิกของคุณไม่ใช่หน้าต่าง คุณสามารถปิดใช้งานทางลัดนั้นได้จากการตั้งค่ากราฟิก
Daniel

9

https://code.visualstudio.com/Updates

เวอร์ชั่นใหม่ (Visual Studio 0.3.0) รองรับฟีเจอร์เคอร์เซอร์ได้มากกว่า

Multi-cursor
Here's multi-cursor improvements that we've made.

⌘D selects the word at the cursor, or the next occurrence of the current selection.
⌘K ⌘D moves the last added cursor to next occurrence of the current selection.
The two actions pick up the matchCase and matchWholeWord settings of the find widget.
⌘U undoes the last cursor action, so if you added one cursor too many or made a mistake, press ⌘U to return to the previous cursor state.
Insert cursor above (⌥⌘↑) and insert cursor below (⌥⌘↓) now reveals the last added cursor, making it easier to work with multi-cursors spanning more than one screen height (i.e., working with 300 lines while only 80 fit in the screen).

และทางลัดสั้น ๆ ของเคอร์เซอร์หลายตัวที่เลือกจะเปลี่ยนเป็น cmd + d (เหมือนกับ Sublime Text lol)

เราคาดหวังว่าเวอร์ชั่นถัดไปรองรับคุณสมบัติที่สะดวกยิ่งขึ้นเกี่ยวกับเคอร์เซอร์หลายตัว




4

ใน XFCE ของฉัน (เวอร์ชั่น 4.12) Settings -> Window Manager Tweaks -> Accessibilityก็อยู่ใน

มีสนามแบบเลื่อนลงเป็นตั้งค่านี้เป็นKey used to grab and move windows:None

Alt + คลิกใช้งานได้ในรหัส VS เพื่อเพิ่มเคอร์เซอร์เพิ่มเติม


4

คุณสามารถทำสิ่งต่อไปนี้ในเมนูตัวเลือก:

สกรีนช็อตของเมนูการเลือกในรหัส VS

กด / ค้างไว้Alt+Ctrl+Up Arrow/ Alt+Ctrl+Down Arrow ตามต้องการเพื่อสร้างเคอร์เซอร์ที่เพียงพอจากนั้นCtrl+Dสามารถใช้เพื่อขยายการเลือก


3

ปัญหาเดียวกันกับ Ubuntu-MATE แต่ที่นี่คุณแก้ไขได้โดย:

gsettings set org.mate.Marco.general mouse-button-modifier "<Super>"


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