Visual Studio CTRL + SHIFT + T转置 - 它有什么作用?

Ume*_*mer 16 transpose keyboard-shortcuts visual-studio

我写了一些代码并尝试使用Ctrl+ T来检查visual studio中的转置功能.

只是为了检查CTRL+ Shift+ T是否为此Transpose反向...我试着按Ctrl+ Shift+ T.它只是搞砸了一切......

任何人都可以告诉我这Ctrl+ Shift+ 到底是什么T(特别是一个块)?

例如:

public string returnDateTimeToMyformat(DateTime dt)
{
    dt = dt.AddYears(-1);
    return dt.ToString("yyyy MM dd HH mm ss");
}
Run Code Online (Sandbox Code Playgroud)

至:

string returnDateTimeToMyformat publicdtDateTime (dt
{
    dt = )1AddYears(-.return;
    dt ).ToString("yyyy MM dd HH mm ss");
}
Run Code Online (Sandbox Code Playgroud)

(我在"公开"之后开始使用光标)

pax*_*blo 18

由于CTRL-T交换了光标两侧的两个字符,因此它就是......

等等......

CTRL-T

:-)

CTRLSHIFTT 转换光标后的两个单词.

它对你的做了什么似乎相当奇怪.它似乎是每行的多个部分.我唯一的建议是(正如医生对患者抱怨说将头撞在墙上时疼痛):不要这样做.


小智 7

正如其他人所指出的那样,光标后面的两个单词被转置,光标放在已经被转置的单词之后.但是,在考虑"单词"时,Visual Studio 2010至少会出现忽略逗号和其他标点符号的情况.这样做的一个用途是,你可以重新排序像枚举这样的东西.例如,

typedef enum myEnum
{
  ThingOne,
  ThingThree,
  ThingTwo
};
Run Code Online (Sandbox Code Playgroud)

将光标放在ThingThree附近并按下CtrlShiftT以获得:

typedef enum myEnum
{
  ThingOne,
  ThingTwo,
  ThingThree
};
Run Code Online (Sandbox Code Playgroud)

如果您认为枚举的不同顺序更好,那么这可能是一件好事.您还可以使用它来帮助进行防止白痴的比较和/或快速轻松地将它们格式化为更好的编码标准.

if ( ptr == NULL ) { /* stuff */ }
Run Code Online (Sandbox Code Playgroud)

被认为是坏的(更不用说在自己的行上有一个"if"也是坏的),因为你可以轻易地写出(或读取)"ptr = NULL".你最好的

if ( NULL == ptr ) { /* stuff */ }
Run Code Online (Sandbox Code Playgroud)

所以,如果你第一次做错了,只需选择有问题的表达并...... CtrlShiftT来救援!

...是的,好的,所以这件事没那么有用.

编辑:嗯,我要补充的是,行为有点古怪,当你的光标是一个标点符号(如左括号)之前放置,因此你有,当你反复打怪异的结果CtrlShiftT在您的代码段.它似乎只是将光标后面的任何以空格分隔的字符串与下一个字母数字"单词" 交换,跳过其间的任何标点符号.但结果往往难以阅读,所以我不会声称这是确切的模式.