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

18
我写了一些代码并尝试使用Visual Studio中的Ctrl + T检查转置功能。
只是为了检查CTRL + Shift + T是否会反转置...我尝试按下Ctrl + Shift + T,但它只是把一切搞糟了...
有人能告诉我这个Ctrl + Shift + T到底是做什么的(特别是对于块)吗?
例如:
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”后面开始)


如果我在行首开始按住Ctrl-T,唯一的变化将是第一个字母会移到行尾,其余字母则基本不变... - Umer
4个回答

20
由于 CTRL-T 会交换光标两侧的字符,它的相反操作是...

等待...

CTRL-T

:-)

CTRLSHIFTT 会交换光标后面的两个单词。

它对你的 所做的事情似乎相当奇怪。它似乎作用于每行的多个部分。我唯一的建议是(正如医生对抱怨撞头疼的患者所说):不要这样做。


1
我想,不是真正的两个词“在光标之后”。 - Umer

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时得到了奇怪的结果。它似乎只是将光标后的任何以空格结束的字符串与下一个字母数字“单词”交换,跳过中间的任何标点符号。结果通常很难阅读,因此我不会声称这是确切的模式。


2
根据该网站的说法:

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

唯一未解决的问题可能是:为什么?当您有一堆代码行时,其中变量被赋值,这可能会变得方便。 (例如Load / Save)在相反的功能中,您想要执行相反的分配,也许可以在这种情况下使用此快捷方式...

除非你按照我在编辑中展示的方式尝试,否则这是没有意义的 :) - Umer

1

通过这个Visual Studio Document Reopen酷炫的扩展程序,你可以使用CTRL+SHIFT+T重新打开最近关闭的文档。它的工作方式类似于Web浏览器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接