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

第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键时就不会丢失剪贴板上的内容。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

作者旁述

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

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

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

1.1.2 撤销/重复

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

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

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

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

时间: 2024-08-31 20:10:41

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

《Visual Studio程序员箴言》---- 第2章 让编辑器的使用得心应手 2.1 高级编辑

第2章 让编辑器的使用得心应手 Visual Studio程序员箴言 纵观本书,您会看到我反复测试我最喜欢的功能.但我可以肯定地说,没有什么其他功能比编辑器更能让我想要拥有.编辑器是每个人一直都要使用的功能,我怎么会不想测试它并揭示它的秘密呢? 第1章重点讲述了适用于任意文件类型(甚至是纯文本文件)的基本编辑技巧.本章着重强调的是针对任意语言文件的基本编码技巧.在此,您将了解到关于Microsoft IntelliSense.大纲显示和代码段的技巧. 本文仅用于学习和交流目的,不代表异步社区观点

《Visual Studio程序员箴言》---- 2.3 书签

2.3 书签 Visual Studio程序员箴言书签是在文件中标记各种位置的一种手段.刚开始测试书签时,我并不确定书签与任务列表中注释之间的区别.任务列表注释和其他记号出现在文件中,所以它们有可能进入源代码库,并且所有人都可见.另一方面,书签只有自己才能看到."书签"窗口中显示的书签保存在文件之外.关于任务列表功能的更多信息,请参见第5章. 管理书签接下来的多条技巧是关于创建和使用书签. 技巧2.27 设置书签并在多个书签之间导航按Ctrl+K键.Ctrl+K键可设置一个书签.相应的

《Visual Studio程序员箴言》----1.2 滚动与导航

1.2 滚动与导航 Visual Studio程序员箴言 能够查看代码并将光标移到所关注的任意行,与能够尽可能轻松地输入代码同样重要. 1.2.1 滚动 我们都习惯使用鼠标滚轮来滚动编辑器内的代码和文本.以下技巧介绍了一些新的键盘快捷键,可改善你对滚动查看的体验.此外还介绍了如何隐藏所有的滚动条.说不定什么时候这些技巧就会派上用场. 技巧1.13 使用鼠标滚轮在各个方向上滚动 您知道可以按鼠标滚轮并把它当作第三个按键来用吗?对于很多带有编辑器的应用程序来说,按下鼠标滚轮会显示一个图标,指示可以往

《Visual Studio程序员箴言》----2.2 打开文件

2.2 打开文件 Visual Studio程序员箴言 花在IDE上的时间越多,想要进行自定义的愿望就越强烈.对于打开文件也是如此.因为这是一项频繁执行的操作,使用快捷方式或一些省时的自定义设置可以在需要打开文件的时候加快这个过程的速度. 打开文件和编辑器窗口 接下来要讲的这些技巧为在编辑器内打开文件提供了各种自定义方法. 技巧2.22 打开文件时重用同一个编辑器窗口 访问菜单"工具"→"选项"→"环境"→"文档",然后选中&

《Visual Studio程序员箴言》----2.4 IntelliSense

2.4 IntelliSense Visual Studio程序员箴言IntelliSense这个术语指的是编辑器在用户输入代码时为用户提供建议的功能.用户很可能最熟悉的主要IntelliSense功能包括语句完成.参数信息和完成单词. 语句完成.参数信息和完成单词语句完成就是在UI上显示在指定位置能够将哪些合法对象插入到代码中.它也称为列表成员. 完成单词和语句完成非常类似,但不在UI上显示.如果正在输入的方法或对象是唯一的,完成单词功能将会填好单词,即便语句完成并未显示也是如此.完成单词等价

《Visual Studio程序员箴言》---- 1.3 编辑器字体和颜色

1.3 编辑器字体和颜色 Visual Studio程序员箴言这部分内容着重讲述如何修改编辑器中带有一些可视元素的内容,无论是仅仅增大文本编辑器的字体大小,还是显示行号. 1.3.1 字体大小 众所周知,在"工具"→"选项"→"环境"→"字体和颜色"下选择"纯文本",可以增大编辑器中所有文本的字体大小.但还有一些用于增大字体的其他选项迟早派的上用场. 技巧1.25 增大编辑器中工具提示的字体大小选择&quo

《Visual Studio程序员箴言》----1.4 打印

1.4 打印 Visual Studio程序员箴言当我得知可以使用出现在"打印"对话框中已安装打印机列表中的Microsoft XPS Document Writer打印文件时,心情是喜忧参半.喜是因为它测试打印的速度非常快,而忧是因为我为办公室购买一台顶级彩色打印机的愿望都成为泡影. 打印选项我们都会时不时需要打印.所以需要打印文件时,有必要了解您在自定义打印页外观的过程中都可使用哪些选项. 技巧1.33 打印行号作者旁述 如果回到使用Visual Studio .NET 2003的

《Visual Studio程序员箴言》---- 1.5 状态栏

1.5 状态栏 Visual Studio程序员箴言状态栏可以反映IDE中发生的变化,无论是编译.进行搜索.运行宏,还是执行任意其他类似的操作. 像状态栏这样的小功能始终会给测试人员带来挑战.类似于这样的功能几乎可以持有这样的嘲弄态度:"你永远也别想在我身上找出一个新bug".或许我只是怀恨在心,因为我记得从来没有找到过关于状态栏的任何有用的bug. 状态栏选项正如您所希望的那样,关于状态栏的选项并不多.实际上,我相信下面这个选项可能是唯一的一个. 技巧1.36 隐藏状态栏我无法确定人

《Visual Studio程序员箴言》----2.5 代码段

2.5 代码段 Visual Studio程序员箴言与破坏软件相同,我更喜欢做的唯一的事情就是发出通知:"我破坏了软件".例如,我首次接管测试代码段的工作时,我会尝试进行各种意外的操作来破坏UI,例如在代码段名称的位置上输入"Sara wuz here".正如您所期望的那样,我的大部分尝试都是不成功的,但最终我确实发现了一系列能够导致崩溃的键盘快捷键. 软件测试的有趣之处在于,一旦找出一个bug,通常在附近还隐藏着一堆bug.您要做的就是知道如何找出bug的模式.从