Hitting Tab in Visual Studio selects block instead

2019-01-25 01:15发布

问题:

I am using Visual Studio 2015 and ReSharper 2016.2 and I have this strange behavior, that I probably activated (accidentally). When having the cursor in a line before the first word, hitting the Tab-key indents the line correctly:

When the cursor is inside of any word inside the line, hitting the Tab-key selects the word or block.

But the desired behavior would be to indent at the cursor (e.g. split a word into two words, if the cursor was inside of the word Stream after the letter r):

Does anyone know how this 'feature' is called? Does it come from ReSharper? Where can it be enabled or disabled?

回答1:

Go to Resharper -> Options, in the left treeview select Editor Behavior and uncheck the last option Use Tab/Shift Tab keys for structural navigation.

Update for Resharper 2016.3.1.

Thanks to @Jordan for pointing this out!



回答2:

This is called Structural Navigation, and is really useful for tabbing between blocks of code, e.g. parameters in a method call/definition - makes it very easy to edit. The behaviour can be changed in the options, under Editor Behaviour. More details in the docs.



回答3:

Turn it off and use your pointer to "navigate" to the structure you want to edit. That way you can continue to add tabs to your comment blocks until they fix the otherwise useless feature. Somebody over there has too much time on their hands solving non-existent problems, and actually making things worse. They have the comment behavior of this "feature" listed as a bug. Should be fixed by 2018.