Make Visual Studio understand CamelCase when hitting Ctrl and cursor keys

Visual StudioKeyboard ShortcutsCustomization

Visual Studio Problem Overview


Is there a way that I can configure Visual Studio 2008 to understand CamelCase? Specifically, I'd like to be able to get Ctrl + right or left cursor to take me to a subsection of a variable or type name.

i.e., if my cursor was at the start of this line:

LongNamedExampleClass longNamed = new LongNamedExampleClass();

and I hit Ctrl + right, I'd like to jump to "Named" in the class name, rather than the start of the variable name. If I hit it again, I'd like to go to "Example". I hope that makes sense.

I used this navigational feature in Eclipse quite a lot, and find it difficult to unlearn something so ingrained.

Visual Studio Solutions


Solution 1 - Visual Studio

Thanks to those who suggested Resharper. This gives me another reason to love it even more. Just to be specific about where this lives - JetBrains call it CamelHumps (cute) and you can switch it on using the menu:

> Resharper -> Options -> Environment -> Editor -> Editor Behavior -> Use CamelHumps

... in older versions of Resharper, it is;

> Resharper -> Options -> Editor -> Use CamelHumps

Solution 2 - Visual Studio

Anyone stumbling across this page after Nov 25, 2008 (who don't want to pay for ReSharper or CodeRush which no longer has a free version), the following free Extension adds this functionality: Subword Navigation by Olle Westman

(Alternatively, the VSTricks extension includes Sub-word Navigation in its list of nifty features. There is also a different Subword navigation extension created by Lauri Vasama not to be confused with Olle Westman's which this answer uses.)

The Subword Navigation project page states: > Look up Edit.Subword in keyboard bindings to set things up.

Here's how I set it up in Visual Studio 2019:


  1. Navigate to Tools > Options > Environment > Keyboard

  1. Under Use new shortcut in, select Text Editor

  1. Under Show commands containing, type Edit.Subword. This should pop up an autocomplete field with the listed commands below.

  1. Select one of the following commands you want to set its shortcut keys for. Once selected, follow the rest of the numbered steps. Then come back to Step 4 to set another one.
  • Edit.SubwordNext
    • Traverses camelcases to the right [Alt + Right Arrow]
  • Edit.SubwordPrevious
    • Traverses camelcases to the left [Alt + Left Arrow]                                                             
  • Edit.SubwordNextExtend
    • Selects camelcases to the right [Alt + Shift + Right Arrow]
  • Edit.SubwordPreviousExtend
    • Selects camelcases to the left [Alt + Shift + Left Arrow]                                                              
  • Edit.SubwordDeleteNext
    • Deletes camelcases to the right [Alt + Delete]
  • Edit.SubwordDeletePrevious
    • Deletes camelcases to the left [Alt + Backspace]

>Note: When assigning these Subword Navigation commands to these new shortcut keys, preserve any already-existing shortcut-key functionality you want to keep beforehand by setting them to different keys. It should not conflict with any default-installed shortcut keys.


  1. Under Press shortcut keys, press Your Shortcut Keys

  1. Click Assign and overwrite the existing shortcut

Solution 3 - Visual Studio

If you have ReSharper installed you can also configure Visual Studio keyboard shortcuts "Alt-Right" and "Alt-Left" for CamelHump, without losing standard Visual Studio behaviour for "ctrl-right" and "ctrl-left".

  1. Open the Visual Studio Options window from Tools –> Options
  2. Expand Environment and scroll down to Keyboard
  3. In Show commands containing box, type "hump". This will show all commands related to CamelHumps. CamelHumps
  4. Map the commands to the key mappings you wish by selecting the command from the list and entering the key mapping in the Press shortcut keys textbox, then click Assign.

Caveats:

  • Assign the mappings for Text Editor, not Global.
  • Make sure the Use CamelHumps option from Resharper -> Options -> Editor -> Editor Behaviour is turned off.

Details here: http://davidrcook.wordpress.com/2009/11/05/working-with-camel-case-in-visual-studio/

Solution 4 - Visual Studio

It's not native to Visual Studio, but you can get it for free using CodeRush Express. (ReSharper and CodeRush require payment).

Solution 5 - Visual Studio

Visual Studio does not support this behavior. However, DevExpres's CodeRush! product supports navigation like this (using Alt-Left & Alt-Right), along with tons of other features to aid in navigation. The CodeRush! product is also bundled with their Refactor tool. They also offer a free CodeRush! & Refactor Express product, though I'm not certain if the Camel Casing navigation is part of the express product.

Solution 6 - Visual Studio

Solution 7 - Visual Studio

I don't think Visual Studio supports this feature internally, as it seems to be using the normal way Ctrl+Right and Ctrl+Left work in Windows environment. But it's probably possible with some kind of extension or plugin.

Solution 8 - Visual Studio

This extension was created to do that, just like in Eclipse:

https://marketplace.visualstudio.com/items?itemName=maptz.camelcasenavigation

Solution 9 - Visual Studio

For those using Visual Studio 2022.

Ctrl +Alt + right or left will jump to sub words(camel case navigation).

Solution 10 - Visual Studio

For anyone that is looking for this in version ~1.63 The keybinding option is now called "cursorWordPart" and can easyly be set in keyboard shortcuts :)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionserg10View Question on Stackoverflow
Solution 1 - Visual Studioserg10View Answer on Stackoverflow
Solution 2 - Visual StudiojseaView Answer on Stackoverflow
Solution 3 - Visual StudiokeremispirliView Answer on Stackoverflow
Solution 4 - Visual StudioStewart JohnsonView Answer on Stackoverflow
Solution 5 - Visual StudioSteve BrouillardView Answer on Stackoverflow
Solution 6 - Visual Studioozan kView Answer on Stackoverflow
Solution 7 - Visual StudiommxView Answer on Stackoverflow
Solution 8 - Visual StudioNaNView Answer on Stackoverflow
Solution 9 - Visual StudioJasonPowellView Answer on Stackoverflow
Solution 10 - Visual StudioJemomi_DKView Answer on Stackoverflow