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

简介: 我们都习惯使用鼠标滚轮来滚动编辑器内的代码和文本。以下技巧介绍了一些新的键盘快捷键,可改善你对滚动查看的体验。此外还介绍了如何隐藏所有的滚动条。说不定什么时候这些技巧就会派上用场。

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

1.2 滚动与导航

Visual Studio程序员箴言
能够查看代码并将光标移到所关注的任意行,与能够尽可能轻松地输入代码同样重要。

1.2.1 滚动

我们都习惯使用鼠标滚轮来滚动编辑器内的代码和文本。以下技巧介绍了一些新的键盘快捷键,可改善你对滚动查看的体验。此外还介绍了如何隐藏所有的滚动条。说不定什么时候这些技巧就会派上用场。

技巧1.13 使用鼠标滚轮在各个方向上滚动
您知道可以按鼠标滚轮并把它当作第三个按键来用吗?对于很多带有编辑器的应用程序来说,按下鼠标滚轮会显示一个图标,指示可以往哪些方向滚动。有些需要按住鼠标滚轮,有些不需要。

在编辑器中,按一次鼠标滚轮就可以看到一个图标指示可以滚动的方向。


b1a3c1d76f8c092ab5759da6ee0c488b5dbe023c

有几个事情需要注意:

鼠标距离方向图标越远,编辑器滚动的速度越快;
按鼠标主键将停止滚动,但必须再次按按钮才能将光标移到所需的位置。
技巧1.14 在不滚动的情况下跳到编辑器中当前视图的顶部或底部
按PgUp键或PgDn键会导致编辑器向上或向下翻一页,而以下键盘快捷键只会让光标移动。

按Ctrl+PgUp键可以将光标移到当前编辑器视图的顶部,同时不会像PgUp键那样移动当前视图。


c1bd1099f615d16396f90485e00d450e1e32db78

按Ctrl+PgDn键可以将光标移到当前编辑器视图的底部,同时不会像PgDn键那样移动当前视图。


6ae922bcfff6dd27f6042aba63c97bf4edce6ee9

如果像上面这样使用键盘快捷键,会发现下面这些快捷键也很有用。

按Ctrl+Shift+PgUp键可以选择当前光标位置(在下面的例子中,接近屏幕的底部)与当前编辑器视图顶部之间的所有文本。


b22577d98886d6eb3c19f7741772138af2f1efea

按Ctrl+Shift+PgDn键可以选择当前光标位置与当前编辑器视图底部之间的所有文本。


8bb2e7fbb1edf7c3542d6dc960a3fb95fad8f03d

有一点要注意,这4个命令都是直线跳转光标,这表示它不会跳到顶行的开始位置,而是尽可能接近当前列的位置,这一点从上面的例子中可以看出来。

技巧1.15 隐藏编辑器中的垂直和水平滚动条
这个技巧真正符合“你知道吗?”的精神。

选择菜单“工具”→“选项”→“文本编辑器”→“常规”,在“显示”下,可以取消选中“垂直滚动条”和“水平滚动条”选项。


e447d43965f1653d890dc9b1a794683007dd19e8

现在滚动条隐藏了。当然,在这种状态下仍然可以在垂直和水平方向上进行滚动。


991b957f082abdc478cb7b7bae30183412b12c68

1.2.2 在编辑器内和编辑器之间进行导航

导航代码是另一项经常执行的操作,因此如果能在这上面省下一点时间,长此以往也不可小视。下面的技巧让您尽可能快地可以到达想去的位置,或者返回刚刚所在的位置。

技巧1.16 通过返回标记在编辑器中进行向前和向后定位
在标准工具栏中可以找到“向前定位”和“向后定位”图标。


355456033c3e9bb6e6232256d3e95e6b25006548

在编辑器中,与“向后定位”命令绑定的快捷键是Ctrl+-(减号),而与“向前定位”命令绑定的快捷键是Ctrl+Shift+-(减号)。在浏览多个文件或者在调用堆栈中跳转时,这些命令最有用。

“基本编辑器定位101”课程结束了。现在是时候学习“高级编辑器定位201”课程了。

您可能已经注意到了,“向后定位”按钮还包含一个下拉列表框。这个列表框内显示的内容项是做上了返回标记的所有位置。换句话说,单击“向后定位”按钮表示回到最近访问的返回标记。

如果一切顺利,返回导航应该感觉很自然。但如果您像我一样,就会想了解整个过程的细节。

在以下条件下会做返回标记。

增量式搜索(包括反向)会在搜索的开始处留下一个返回标记,而在搜索的结尾处留下另一个;
“转到行”操作,例如按Ctrl+G键,或者将光标从当前位置移动11行或更多行的鼠标单击,会在新位置上留下一个返回标记;
已将光标移到一个新位置的删除操作(例如按Backspace键)会留下一个返回标记;
进行搜索,例如按Ctrl+F键,会在找到的位置上留下一个返回标记;
打开一个文件时,会在光标位于老文件上的地方留下一个返回标记,并在已打开文件上的地方留下另一个返回标记。
如果您发现其他情况也会留下返回标记,请告诉我。

技巧1.17 使用撤销操作将光标跳回到上一个插入点
在技巧1.16中,我们深入了解了关于返回标记的内容。本条技巧讲述插入点的轻微差异。它们与返回标记类似,但应用的位置是单击鼠标或跳转光标的地方。返回标记“11或更多行”法则不适用。


190dd7ef791120e28c39d8eeaaeb5d2b9c17a570

下图中显示的这个选项可以在“工具”→“选项”→“文本编辑器”→“常规”中找到。


4ab302f871f882d706fc2f40fb0dfc125164d3a7

要进行尝试,只要随便单击某处,然后单击另一处(或者如果正在使用键盘,使用“查找”或“转到行”操作),然后单击“撤销”按钮。这将回到前面一个位置。

技巧1.18 通过键盘访问导航栏
导航栏位于编辑器顶部,就在文件选项卡的下面。左边的组合框列出了对象,而右边的组合框列出了所选对象的成员。需要跳转到一个大解决方案中的各个函数,或者想要查看一个对象有哪些函数时,这些组合框非常有用。


6d4d9fe22b74a502ae2553e493b17015aeaaf448

要通过键盘跳转到导航栏,可按Ctrl+F2键。这个键盘快捷键绑定到了窗口.移动到导航栏命令。要在对象列表与成员列表之间切换,可按Tab或Shift+Tab键。

另外,还可以隐藏(或显示)导航栏,具体操作是选择“工具”→“选项”→“文本编辑器”→“所有语言”→“常规”,不选择(或选择)“导航栏”选项。注意,因为这个选项位于“所有语言”窗格中,所以可对“文本编辑器”节点下列出的任何语言进行自定义。


8ec980376b620ba184413cdfbb4d600be0c4cab7

技巧1.19 拆分窗口和新建窗口
拆分当前窗口有两种途径。

在菜单栏中选择“窗口”→“拆分”。
使用鼠标直接拖动文档滚动条上的拆分控件,如下图所示。


4e9b46f2d42b06ddcfb6a555c3a841e48c4da81c

但是拆分命令只会进行水平拆分。如果需要像下图这样进行垂直拆分,可使用“窗口”→“新建窗口”命令。这将创建窗口“Program.cs:1”和“Program.cs:2”。然后可以使用“窗口”→“新建垂直选项卡组”命令垂直拆分这两个文件。


f758334c948eac599beaf534e3f00b8c9bb532de

技巧1.20 使用F6在编辑器内的拆分窗格之间跳转
作者旁述

我最初编写和发布这个技巧时,这与描述如何拆分窗格的技巧1.19之间相隔了6个月之久,不禁令人好笑。我在博客上开始发表“每日一贴”系列文章的第一周,就不得不面对实际上不得不每隔一天写一条技巧的无情事实。在编写“每日一贴”的第一周内,我正在参加一个会议,所以最初发表的技巧都是我能够以最快的速度写出来的。这段时间的疯狂写作没有任何节奏或理由,因此技巧1.19与技巧1.20之间相隔了6个月。
使用拆分控件拆分完编辑器窗口之后,可以使用F6键在编辑器视图之间跳转。


c7ec1aee3095ed8211ca99b2175fe3595e75f3f1

技巧1.21 在编辑器内启用URL定位
在“工具”→“选项”→“文本编辑器”→“所有语言”→“常规”下,有一个“启用单击URL定位”选项。这个选项对于大多数编辑器是默认选中的。但是无法单击URL时,可以在这里检查该选项是否已选中。


ec74a1d45988d6dcd02fd58d20911bf536c091a9

技巧1.22 使用Ctrl+G时不弹出“转到行”对话框
这个技巧相当直观:按Ctrl+G键将弹出“转到行”对话框。


e687439c573755e7e086948fa073749c0d212559

但您是否知道有一种方法可以在使用Ctrl+G键时不弹出这个对话框呢?

1.按Ctrl+D键,将焦点移到标准工具栏上的“查找”组合框上。

2.输入行号。

3.按Ctrl+G键(注意:不要按Enter键,否则就会变为搜索这个数字!)

恭喜!您已经定位到了该行,并且“转到行”对话框没有弹出。

可以尝试定位到第0行,但Visual Studio会跳到第1行。

1.2.3 自动换行和虚空格

自动换行选项会将很长的文本行换行,文本会显示在新行上,而不是挤在第一行。虚空格选项支持将插入点置于文件的任何地方,即便是在行末符之外也可以。

技巧1.23 启用自动换行
下图演示了如何让一行文本换行到下一行上。


48caf08744cbecacdbad190072f756ab160f85b2

进入“工具”→“选项”→“文本编辑器”→“所有语言”→“常规”下,选中“自动换行”选项。选中之后,“显示可视的自动换行标志符号”选项也将变为可用。


4908fc9b9a03a1549925bfe3cbce330193ea9508

还可以在“工具”→“选项”→“环境”→“字体和颜色”下修改“可见空白”项,为自动换行自定义虚字的项前景色。


0bad1f97d5b3c39750821cd3e467ef74c6772153

技巧1.24 启用虚空格
作者旁述

这个技巧与前面技巧1.23中的自动换行功能是互斥的。试一试就会知道,不可能同时选中自动换行和虚空格两个选项。但如果您知道如何做到这一点,请不吝赐教!
在下面的例子中,光标位于虚空格中。我已经启用了“可见空白”选项,确保Program类名之后不存在空格。


ea0f340a5f3cb92bcdc07206236cc97f598ce1b6

作者旁述

我从未用过自动换行功能,而虚空格功能也不过是在几周前进行测试时刚刚用过。这两个选项对我都没有多大用处。我发表这个技巧时,也要求读者说明他们使用这些选项的理由,我知道我会学到一些新东西的。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章