且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识 1.1 基本编辑

更新时间:2022-10-12 19:16:28

本节书摘来自异步社区《Visual Studio程序员箴言》一书中的第1章,第1节,作者: 【美】Sara For,译者: 谢俊 , 更多章节内容可以访问云栖社区“异步社区”公众号查看。

第1章 回顾编辑器的基础知识

Visual Studio程序员箴言
Microsoft Visual Studio中的性能改进是从编辑器开始的。无论是输入代码、编辑代码还是删除代码,除了纯粹的输入,无需执行其他的操作了。把这些技巧当作一个储钱罐,在其中存入多余的零钱。即使这些技巧当中的一些只能够为您省下短短的几秒钟时间,这几秒钟也能积少成多,变为几天、几周和几个月。省出这么长的时间用于消遣不是很好吗?

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

1.1 基本编辑

Visual Studio程序员箴言
无论是编写C#代码还是编辑纯文本文件,都可以使用一些基本技巧来改善编辑体验。

1.1.1 文本编辑

经过一段时间,开发人员对如何执行某些任务会形成“肌肉记忆”,即使有更加高效的方式,我们也会按照与以前类似的方式去做。例如,考虑删除文件中的当前文本行。您的第一反应可能是按Home键,然后是Shift+End键,再然后按Delete键。显然,这个按键序列可以达到目的,而且由于肌肉记忆的原因,您甚至都不需要考虑去查找相应的键盘快捷键。但如果只需要按两次键就能完成同样的操作,就能够省下一两秒时间(如果不小心按了错误的键,则要花费更多时间)。尽管当时看起来能省下的时间寥寥无几,但如果需要不断删除文本行,累积下来也颇为可观。

技巧1.1 避免意外复制一个空白行
作者旁述

我曾经遇到过这样的事情,我本来是想在一个空白行上按Ctrl+V键的,但却误按了Ctrl+C键。我也不知道为什么这么做。结果是我复制了一个空白行,抹掉了我想要粘贴在此的内容。而且令我沮丧的是,我按了Ctrl+V却是徒劳。事实上,有时候我已经意识到自己不小心按了Ctrl+C键,所以我尽可能快地按Ctrl+V,以为我可以在速度上超过编辑器。但我每次都是输家。
我在“工具”→“选项”→“文本编辑器”→“所有语言”→“常规”中找到了一个选项,可以让自己避免这种沮丧。有一个复选框叫做“没有选定内容时对空行应用剪切或复制命令”。只要取消选中该选项,以后在空白行上按Ctrl+C键时就不会丢失剪贴板上的内容。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

技巧1.2 通过剪贴板环来循环粘贴不同内容
作者旁述

对于我来说,这是另一个会让我大呼“为什么我就没想起这个技巧呢?它可以让我节省很多时间啊!真是的!”的技巧。同样,每次我想起这条技巧时,感觉就像是收到了邮寄来的一个小礼物。
只要按Ctrl+Shift+V键,便可在过去剪切或复制到剪贴板上的20条内容间进行循环粘贴。很酷吧?

为了举例说明,我们假定有两行调用Console.WriteLine()方法的代码,需要交换两个字符串的位置,如下所示:


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

首先剪切两个字符串:先是“World”,然后是“Hello”。现在来到第一处调用Console.WriteLine()的位置。只要光标在括号内时按Ctrl+Shift+V键,代码就会发生如下变化。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

下面移到第二处调用Console.WriteLine()的位置,然后在这一行中按Ctrl+Shift+V键两次,结果如下所示。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

在剪贴板中循环之前最多可以保存20项内容,意味着20项以后将回到仍然记录在剪贴板上的第一项内容。这正是该功能叫做剪贴板环的原因。

技巧1.3 使用Ctrl+Enter组合键在上方插入一行,使用Ctrl+Shift+Enter组合键在下方插入一行
在下面的例子中,注意光标位置在当前行的中间。按Ctrl+Enter键将在当前行的上方插入一个空白行,按Ctrl+Shift+Enter键将在当前行的下方插入一个空白行。光标将移到新行的开始处。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

技巧1.4 使用Ctrl+W组合键选择当前单词
在一个单词上的任意位置处按Ctrl+W键可以选中整个单词。甚至将光标放在单词的末尾,也可用光标选中当前单词(不会选中光标前面的空格)。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

如果光标位于一些空白的中间,而这些空白由两个或多个空格组成,整个空白处将会被选中。

技巧1.5 使用Ctrl+Delete组合键删除下一个单词,使用Ctrl+Backspace组合键删除前一个单词
作者旁述

我在“每日一贴”中的很多主意都是查看老的测试用例得来的。Ctrl+Delete测试用例吸引了我,因为我已经完全忘记了这个键盘快捷键!
Ctrl+Delete键将删除编辑器找到的下一个单词。命令是编辑.字删除直至结尾处。

Ctrl+Backspace键将删除前一个单词。命令是编辑.字删除直至开始处。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

技巧1.6 使用Ctrl+L组合键剪切当前行,使用Ctrl+Shift+L组合键删除当前行
Ctrl+L键将剪切当前行,包括行末(EOL)字符。命令是编辑.剪切行。

Ctrl+Shift+L键将删除当前行,包括EOL字符。命令是编辑.删除行。

下面是使用Ctrl+L键的一个例子。在这个例子中,光标位于Console.WriteLine()调用之前。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

按Ctrl+L键之后,该行消失。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

但让我们继续了解一个额外的技巧:如果在当前行上没有选中任何内容,Shift+Delete键将剪切当前行,包括EOL。如果选中了文本,Shift+Delete键只会剪切选中的文本。

技巧1.7 删除一行开头的水平空白
作者旁述

我始终认为“空白”是一个单词,但在Visual Studio UI中,它显然是两个单词。为了这个技巧,我只好服从UI,并称之为“空白”。
在“编辑”→“高级”菜单中,可以找到“删除水平空白”命令,该命令的快捷键是Ctrl+K,Ctrl+。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

要使用这个命令,将光标放在文本行之前空白中的任意地方,然后按Ctrl+K,Ctrl+键。还可以选择多行并删除每一行开头的空白。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

技巧1.8 将代码或文本拖动到新位置
作者旁述

我往往更喜欢用键盘,这很可能是因为我太懒,不愿意去伸手去碰鼠标。当我第一次看见这项功能时,我很惊喜,因为它并非我能够直观想像得到的,而当“哦,我以前从未见过”的新鲜感逐渐消失后,它当然也是很有意义的。
按住鼠标左键,然后把光标拖到目的位置,这样可以选中要移动的代码块。要将代码复制到新的位置,按住Ctrl键。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

印象还不够深刻?还可以把代码拖到另一个文件中。把代码向上拖动到所需的文件选项卡上,如下图所示。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

虽然会出现“无法放置”光针,但是编辑器仍会切换到该文件。然后只要将光标移到该文件中,就可在此看到正常“拖放”指针。好好利用这项功能吧!

技巧1.9 右键拖动代码可将代码移动或复制到某处
作者旁述

这个技巧的想法是由一位博客读者提交的。我根本不知道这个菜单项的存在。
选择一行代码,然后使用鼠标右键把这行代码拖动到编辑器(或另一个编辑器窗口)中的任意地方。然后就会出现下面这个小菜单,它提供了“移到此处”、“复制到此处”和“取消”3个选项。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

作者旁述

我喜欢博客读者给我提供这样的小技巧,特别是当我一点不知道它们的存在时。这个技巧激发我开始玩“难住Sara”的游戏,游戏内容是我要求博客读者把他们最隐晦的IDE技巧发给我。因为我的工作只与Visual Studio Core Team有关,所以技巧必须限制为不与任意特定语言相关的通用IDE功能。
技巧1.10 在编辑器中调换字符、单词和行的顺序
有3个命令可以调换或交换编辑器中的文本,它们是:

按Ctrl+T键可以调换字符;
按Ctrl+Shift+T键可以调换单词;
按Alt+Shift+T键可以调换行。
在下面的例子中(光标位于注释行“now is the time”中的“is”之前),我将分别应用上述3条命令来演示如何交换文本。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

按Ctrl+T键交换“i”和前面的空格,结果是“// nowi s the time”。
按Ctrl+T+Shift+T键交换“is”和“the”,结果是“// now the is time”。
按Alt+Shift+T键交换当前行与它下面的行。
技巧1.11 在编辑器中使用键盘快捷键来改变单词的大小写
这个技巧再次证明了使用键盘快捷键比必须手动输入修改内容更能节省时间。

按Ctrl+Shift+U键可以把当前字符或选中字符变为大写。
按Ctrl+U键可以把当前字符或选中字符变为小写。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

作者旁述

在此老实讲,我不得不围绕Visual Studio构造提出疑问,从而找出这些命令在什么条件下有用。一种情况是Caps Lock键被绑定为控制键。例如,您输入一个单词,然后按Ctrl+Shift+左方向键进行选择,再使用Ctrl+Shift+U键将选中文本转换为大写(而不必按住Shift键输入整个单词)。也许是IntelliSense功能让我变懒了。

1.1.2 撤销/重复

在文本编辑器工具栏上,可以找到“撤销”和“重复”两个按钮。但如果仔细看,可以看到一个下拉箭头,这表示这些按钮实际上是下拉式控件,可以显示最后一次撤销和重复操作的内容。

技巧1.12 使用标准工具栏上的撤销堆栈
要撤销或重复多个命令,不一定非得按Ctrl+Z或Ctrl+Y键,而可以打开“撤销”或“重复”按钮的下拉内容,从最后一次操作开始,选择要撤销或重复的多个连续性操作。


《Visual Studio程序员箴言》----第1章 回顾编辑器的基础知识  1.1  基本编辑

只要保证光标位于文本编辑器内,这些按钮就会变为可用。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。