Как уже отмечали другие, два слова, следующие за курсором, транспонируются, и курсор помещается после слов, которые были транспонированы.Однако Visual Studio 2010, по крайней мере, игнорирует запятые и другие знаки пунктуации при рассмотрении слов.Одна из полезностей этого в том, что вы можете изменить порядок, например, enum.Например,
typedef enum myEnum
{
ThingOne,
ThingThree,
ThingTwo
};
Поместите курсор где-нибудь рядом с ThingThree и нажмите Ctrl Shift T , чтобы получить:
typedef enum myEnum
{
ThingOne,
ThingTwo,
ThingThree
};
Это может быть хорошо, если вы решите, что другой порядок для ваших перечислений лучше.Вы также можете использовать это для упрощения сравнения и / или быстрого и простого форматирования их в соответствии с лучшим стандартом кодирования.
if ( ptr == NULL ) { /* stuff */ }
считается плохим (не говоря уже о том, что «если» на отдельной строке)также плохо), поскольку вы можете легко написать (или прочитать) «ptr = NULL» случайно.Вам лучше с
if ( NULL == ptr ) { /* stuff */ }
Итак, если вы сделали это неправильно в первый раз, просто выберите оскорбительное выражение и ... Ctrl Shift T на помощь!
... Да, хорошо, так что эта вещь не так уж полезна.
Редактировать: Хм, я должен добавить, что поведениенемного страннее, когда курсор помещается непосредственно перед символом пунктуации (например, левой скобкой), поэтому странный результат, который вы получили, нажимая Ctrl Shift T в вашем фрагменте кода.Кажется, он просто меняет любую строку с пробелом после курсора на следующее алфавитно-цифровое «слово», пропуская любые знаки препинания между ними.Однако результат часто трудно прочитать, поэтому я не собираюсь утверждать, что это точный образец.