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

简介: Microsoft Visual Studio中的性能改进是从编辑器开始的。无论是输入代码、编辑代码还是删除代码,除了纯粹的输入,无需执行其他的操作了。把这些技巧当作一个储钱罐,在其中存入多余的零钱。即使这些技巧当中的一些只能够为您省下短短的几秒钟时间,这几秒钟也能积少成多,变为几天、几周和几个月。

本节书摘来自异步社区《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键时就不会丢失剪贴板上的内容。


9486e8987c8b005c767e6b3994c70ee9b1c149fe

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

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

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


15084d166bb3e6d906abd4c384cd14e7b60812df

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


52ffe085a4f43a6af43389aeb754e8e740af2748

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


b098be287462a5f90797440dc22ac90bc7e0b60c

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

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


faad4a1f81c62e95b4098483079a17ef9e2de0fa

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


74296234f74a50706c4036c55f391762ddc97e81

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

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

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

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


760a4c14d00a24782680c0ead8edfa9e5403f55d

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

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

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


551c9dcf73ec07cda130643747da47aa3ded9aa1

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


61dd64091e3eacef9f5129ee7eb10ad6b024113f

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

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

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


b67eced42c4f8d71c4eda4174ead93bf9e3c5c64

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


1b3e1809a319f0aa613d13e3cb4660cd70a8235a

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

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


986f4fb0cb2a8f6c71a5bf5e7f9c66e3cb841e67

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


45df761ad415f0377342ac5e4576f2b0bf4b2541

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

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

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


c388f92fd2b68ff9c9989652cff4885720055ba8

作者旁述

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

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


8d150f4ffba23bcb34fe273ae65f2e93af710c1a

按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键可以把当前字符或选中字符变为小写。


446e67c13b15ded347636e93737e4dcdf1cdf15f

作者旁述

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

1.1.2 撤销/重复

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

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


2457f5cb08b9f1e375565643f76f2ecb14222124

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

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

相关文章
|
9月前
|
前端开发 JavaScript
富文本编辑器wangEdiotr,编辑内容后,重新打开报错Uncaught (in promise) Error: Cannot find a descendant at path
富文本编辑器wangEdiotr,编辑内容后,重新打开报错Uncaught (in promise) Error: Cannot find a descendant at path
1123 0
|
1月前
|
Unix Shell Linux
【Shell 命令集合 文档编辑】Linux 文本编辑器 ex命令使用指南
【Shell 命令集合 文档编辑】Linux 文本编辑器 ex命令使用指南
34 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 文档编辑】Linux 行编辑器 ed命令使用指南
【Shell 命令集合 文档编辑】Linux 行编辑器 ed命令使用指南
29 0
|
4月前
|
定位技术
ArcGIS中各版本ArcMap安装OpenStreetMap编辑工具集插件ArcGIS Editor for OSM
ArcGIS中各版本ArcMap安装OpenStreetMap编辑工具集插件ArcGIS Editor for OSM
|
6月前
|
机器学习/深度学习 开发工具
帅气的代码编辑方式——Vim编辑器
帅气的代码编辑方式——Vim编辑器
|
6月前
|
Shell Linux 网络安全
git实战—Gerrit配置SSH key & 下载代码到本地 & 使用VScode编辑器编辑提交代码——2023.07
git实战—Gerrit配置SSH key & 下载代码到本地 & 使用VScode编辑器编辑提交代码——2023.07
292 0
|
7月前
|
算法 数据可视化 vr&ar
GLTF编辑器:在线模型材质编辑工具
模型材质贴图的作用是为三维模型赋予外观表面的纹理和颜色。它可以增加模型的细节、真实感和视觉效果,使得模型更具有逼真和吸引力。通过贴图,模型可以呈现出不同的材质,如金属、木材、布料等,并且能够模拟反射、阴影和光照效果,使模型在渲染过程中更加真实。贴图还可以用来描绘模型的细节纹理,例如皮肤的纹理、衣物的图案等。总之,模型材质贴图对于创造逼真的三维模型非常重要。
143 1
|
8月前
|
Linux 开发工具 开发者
掌握文本编辑的艺术:深入了解Linux中的Vim编辑器
在Linux系统中,文本编辑是一项常见的任务。为了满足不同层次的用户需求,诞生了许多文本编辑器,其中Vim作为一个强大的编辑器,广受开发者和系统管理员的喜爱。本文将深入介绍Vim的基本概念、特点以及如何在Linux系统中使用它进行高效的文本编辑。
78 0
|
8月前
|
移动开发 UED HTML5
Web内容可编辑性和富文本编辑器
Web内容可编辑性和富文本编辑器
170 0
|
传感器 JavaScript 前端开发
Vue开发好伙伴--Visual Studio Code编辑器
对于Vue开发的编辑器--vscode你都了解了多少?vscode,全称Visual Studio Code,是一款微软公司旗下开发的可以跨平台运行的免费的源代码编辑器,其中含有很多方便的智能快捷键、多样化的插件功能、智能提示功能等等,在vue前端开发中起到了很便利的开发作用,本文主要是讲解一些vscode的使用,非常值得刚刚入门的萌新朋友参考学习。
Vue开发好伙伴--Visual Studio Code编辑器