18

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

只是为了检查CTRL++是否对这个 Transpose 做相反的事情......我试着按Shift++ 。它只是把一切都搞砸了......TCtrlShiftT

谁能告诉我这个Ctrl++到底是做什么的(尤其是块)ShiftT

例如:

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

到:

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

(我在“public”之后从光标开始)

4

4 回答 4

20

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

等等...

CTRL-T

:-)

CTRLSHIFTT转置光标后的两个单词。

它对你的街区所做的事情似乎很奇怪。它似乎对每行的多个部分进行。我唯一的建议是(正如医生对抱怨头撞墙疼痛的病人所说的那样):不要那样做。

于 2011-04-05T06:36:15.787 回答
7

正如其他人指出的那样,光标后面的两个单词是转置的,光标放在已经转置的单词之后。但是,Visual Studio 2010 在考虑“单词”时至少似乎忽略了逗号和其他标点符号。那么,这样做的一个实用程序是您可以重新排序类似枚举的东西。例如,

typedef enum myEnum
{
  ThingOne,
  ThingThree,
  ThingTwo
};

将光标放在 ThingThree 附近的某处,然后按CtrlShiftT获取:

typedef enum myEnum
{
  ThingOne,
  ThingTwo,
  ThingThree
};

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

if ( ptr == NULL ) { /* stuff */ }

被认为是不好的(不要介意在自己的行上有一个“if”也是不好的),因为您很容易意外地写入(或读取)“ptr = NULL”。你最好

if ( NULL == ptr ) { /* stuff */ }

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

……是啊,好吧,所以这东西没那么有用。

编辑:嗯,我应该补充一点,当您将光标放在标点符号(例如左括号)之前时,行为会有点奇怪,因此当您反复点击CtrlShiftT代码片段时会得到奇怪的结果。它似乎只是将光标后的任何以空格结尾的字符串与下一个字母数字“单词”交换,跳过其间的任何标点符号。但是,结果通常很难阅读,所以我不会声称这是确切的模式。

于 2011-11-14T12:54:40.830 回答
2

根据这个网站:

转置光标后面的两个单词。(例如,|End Sub 将被更改为 Sub End|。)

剩下的唯一问题可能是:为什么?好吧,当您有一个为变量赋值的代码行块时,它可能会变得很方便。(例如加载/保存)在相反的功能中,你想做相反的赋值,也许这种情况下可以使用这个快捷方式......

于 2011-04-05T06:28:03.083 回答
1

使用此Visual Studio Document Reopen很酷的扩展CTRL+SHIFT+T,您可以重新打开最后关闭的文档。它就像在 Web 浏览器中一样工作。

于 2020-07-28T14:53:26.007 回答