Select Next Occurrence

March 10, 2023 ยท View on GitHub

Download this extension from the VS Gallery

For version supporting 2017 and 2019, download here


This extension makes it possible to select multiple occurrences of a selected text for simultaneous editing with multiple cursors. Provides the most common multi-editing features.

Aims to replicate the multi-editing features of Sublime Text/Visual Studio Code for faster coding.

See the change log/roadmap for changes and Roadmap.

What differs this from the built-in multi-edit of VS 2019/2022?

FeatureSelect Next OccurrenceVisual Studio
Multiple cursorsYesYes
Can undo cursorYesYes
Can select all occurrencesYesYes
Can skip occurrenceYesYes
Can select backwards/upYesNo
Can add caret above/belowYesKind of, different implementation *
Can add caret by mouseYesYes *
Can convert selection to caretsYesNo
Can search both case insensitive and exactYesNo, only exact
Multi copy/paste across files and to external programsYesYes *
Supports VS 2022YesYes
Supports VS 2019YesYes
Supports VS 2017YesFrom v15.8
Multi-cursor IntelliSenseNoNo

* Unsure when

Features

  • Select next occurrence of current selection
  • Select next exact occurrence (overrides Find-dialog)
  • Select previous occurrence
  • Select previous exact occurrence (overrides Find-dialog)
  • Select all occurrences
  • Convert a selection into multiple cursors
  • Skip occurrence
  • Undo occurrence
  • Add caret above/below
  • Use multiple carets to edit
  • Add carets by mouse-clicking, press ALT and click to add a new caret or to remove caret/selection at clicked position
  • Copy/paste multiple selections, also to external programs

Select Next Occurrence


Options

  • Toggle case-sensitive search by using the "Match case" setting from the find-dialog (Ctrl+F)

  • Toggle match-whole word search by using the "Match whole word" setting from the find-dialog (Ctrl+F)

  • Options-dialog: Add cursors by mouse-clicking - true by default

  • Options-dialog: Keep caret on first entry - false by default, activates behaviour to keep caret on first entry when pressing escape

Select Next Occurrence Options dialog


Key-bindings

Go to Tools -> Options -> Environment -> Keyboard and search for these command names to edit at your choice. Make sure the Use new shortcut in is set to: Text Editor

Command (prefix SelectNextOccurrence.)Recommendation
SelectNextOccurrenceCtrl+D
SelectNextExactOccurrence
SelectPreviousOccurrenceCtrl+E
SelectPreviousExactOccurrence
SelectAllOccurrencesCtrl+K, Ctrl+A
SkipOccurrenceCtrl+K, Ctrl+D
UndoOccurrenceCtrl+U
AddCaretAboveCtrl+Alt+Up
AddCaretBelowCtrl+Alt+Down
ConvertSelectionToMultipleCursorsCtrl+Shift+I or Alt+Shift+I (vscode))

Select Next Occurrence Keyboard bindings


Troubleshooting

  • Nothing happens when pressing assigned keys

Check that the key-bindings are correct and that the Use new shortcut in is set to: Text Editor.

  • Nothing happens when ALT + left-clicking mouse button to add new caret, multiple edits are unresponsive

There is a possibility that other plugins use this functionality too, and a conflict occurs. Please check for other installed plugins with this feature and try to disable.

  • Copy/cut multiple occurrences doesnt work as expected

There is a conflict with the extension Copy As Html, if you have this enabled, try to disable it and see if this helps.


Contribute

Check out the contribution guidelines if you want to contribute to this project.

License

Apache 2.0