Visual Studio - 为什么默认情况下关闭行号?

41

我觉得这个优秀的IDE默认隐藏行号,这完全是反着来的。这似乎是一个明显的疏忽或者是差劲的默认设置。

这意味着我可能忽略了某些东西,因为在VS开发团队和我之间,我知道谁更有经验。

那么我错过了什么?为什么我不需要在代码中看到行号?


3
我会给你一个加一的。这在一些IDE中让我感到困惑... 我是说,这可能在拥有良好调试器的VS中更有意义,您只需单击即可跳转到有问题的代码行,但当在其他IDE中使用PHP或其他语言时,它只会向您输出行号,您实际上必须自己找到它... 行号非常有用。 - mpen
所以,看起来我缺少的是对IDE的熟悉度...我习惯于在更简单的环境中工作,在那里行号更加重要。从这里所有人提出的内容来看,在VS中没有必要显示它们。 - nailitdown
1
@Mark:你不需要点击才能到达正确的行。我使用过的几乎所有编辑器都有“转到第X行”的功能,即使它没有在侧边显示行号。肯定比上下滚动查找更容易输入行号。 - Jon Skeet
这个ux.se答案提供了另一个解释,为什么行号默认情况下开启。 - Ozair Kafray
10个回答

21

行号在进行双人编程时非常重要。 当两个人一起工作时,说出类似于“第35行有问题”的话语非常有帮助。


我可以理解在这种情况下使用“有用”,但真的是“必不可少”吗?我肯定曾经进行过配对编程,而没有谈论过行号。我通常会说“在XXX方法中”或“当你做XYZ时,你没有做ABC” - 或者只是指着屏幕。 - Jon Skeet
3
只有在你不喜欢在屏幕上留下指纹或者当你的同事伸手指出某些东西时,你才会认为这是必需品,以免他们的腋窝在你的脸上。 :) - Mike Valenty
3
“Line 167”比“Jay S配置点日期处理程序”容易多了。 - seFausto

16

我只有在需要查看特定行(例如在堆栈跟踪中)时才对行号感兴趣。此时,我想要直接转到该特定行,但并不需要看到周围的行号。

对于我来说,内容很重要,而行号只会浪费屏幕空间。

我认为更重要的问题是问自己为什么需要看到行号。它们对你来说有多重要?在哪些情况下需要查看当前页面的所有行号,而不仅仅是显示在状态栏的当前行?

编辑:我同意迈克尔的答案,对于配对编程这个具体例子,它们是有用的。就我个人而言,我很少进行编程配对(我很乐意这样做,只是很少机会),因此线号在其他时间并不实用,甚至分散注意力。


3
同意。Ctrl + G是处理堆栈跟踪情况的完美解决方案。 - Jeff Wilcox
2
@Anacrolix:但这似乎不是语言的特性,而是工具的特性。因此,我见过更多支持“跳转到行”的编辑器(即使记事本也支持),而不是支持所有行号的编辑器。为什么一个支持“跳转到行”的编辑器还需要支持显示所有行号 - 或者说,这种能力如何弥补其他工具不支持这些功能的缺陷? - Jon Skeet
我经常使用行号在文件中跳转,即使我没有收到带有行号的错误或其他信息。例如,我可能想要跳转到特定的循环,由于行号正在显示,我会记得我想去哪里。在vi中,我有时使用标记,但这需要我提前设置一个标记,而不仅仅是在阅读时注意到数字。 - bames53
2
@ioSamurai:所以使用状态栏中的行号部分,它会显示你当前所在的行数。或者这种情况对你来说发生得如此频繁,以至于你真的没有时间将光标放在正确的行上吗? - Jon Skeet
@Spencer:对于配对编程,我同意。其他时间,它们只是干扰。请注意,在代码审查期间,我工作的环境中确实有它们,因为那时它们是相关的。 - Jon Skeet
显示剩余4条评论

13

鉴于默认情况下必须有一个选项,那么最常见的偏好是显而易见的,即默认情况下为“关闭(off)”。

虽然我个人可以轻松地没有它们,但我喜欢代码行号,因为我倾向于a)使用它们在代码文件中定位自己,b)在与其他程序员讨论代码时使用它们作为最快的方法将他们带到我们正在讨论的特定代码行,c)提供一丝代码味道,并提醒我正在处理的特定代码文件有多大。


9
+1 - 当它们被隐藏时,缺乏定位会让我感到困惑,我通常会根据所在行数来判断自己在文件中的位置。 - nailitdown
@nailitdown:这对你来说为什么很重要?滚动条不会大致显示文件大小相对于你所在的位置吗?状态栏会显示包含光标的行...我仍然难以理解为什么我需要知道每一行的行号。 - Jon Skeet
2
Jon - 这不是关于“每个人都需要行号”的问题。这只是我的习惯 - 我瞥一眼行号,以获取我所在的参考位置,“好的x()大约在140,y()大约在320。”然后我可以在系统的其他部分中快速切换,然后更或者更少地回到我之前的位置。我非常注重键盘,因此我尚未完全采用VS下拉菜单直接转到特定方法的功能。 - nailitdown
有人说:“VS没有像跳转到特定方法这样的键盘快捷方式吗?肯定是有的...”但这个人只用过Eclipse。 - Per Wiklander

2

这是用户偏好的问题,没有对错之分,只需创建一个自定义设置文件并将其打开,这样您就不必每次都记得设置它(尽管我确信这只在重新安装VS时偶尔完成一次)。


2
据我所知,行号只是屏幕上的更多杂乱内容,我不认为它们有任何意义。你需要它们做什么?难道你在使用上世纪80年代的BASIC编程吗?

4
即使他这样做了,行号与数字行标签无关。 - Rook
Dipstick,在配对编程中确实有其重要性。你如何告诉你的搭档你指的是代码的哪一部分?你不想伸手到屏幕上用手指指出 - 相反,你只需指出行号即可。 - Mathias Bader
@mbader - 请记住,我的帖子是5年前发布的,当时屏幕的分辨率比现在要低。不过,我在过去30年中使用的每个编辑器都有一个状态栏中的字段,告诉您光标所在的行号。您不需要浪费屏幕空间在每一行上打印一个数字。 - Dipstick

2
只要有显示或隐藏选项,那么这有什么关系呢?
我更喜欢关闭它们 - 我认为它们通常浪费了宝贵的屏幕空间。您可以在状态栏中看到所在行,也可以转到(ctrl + G)任何行。但有时它们可能是有用的。

1

Visual Studio 允许多种方式查看您的代码。例如,您可以使用搜索和下拉菜单。如果您有许多命名的小函数,那么行号可能对您没有任何意义。因此,虽然我喜欢它们,但这并不是真正的问题,不是吗?


1

对于那些想要打开行号的人

要在代码中显示行号

在“工具”菜单上,选择“选项”。

在选项窗口左侧的类别列表中,展开“文本编辑器”节点。

展开“所有语言”子节点并选择“常规”以全局设置此选项。

注意: Visual C# Express用户必须单击“显示所有设置”才能显示“所有语言”子文件夹。

或者

选择您正在编程的语言的子文件夹中的常规选项。

在“显示”部分选择“行号”。


0

行号对于一些人来说可能很有用,但对于另一些人来说在屏幕上却很麻烦。而它们可以帮助快速访问异常堆栈日志中提到的确切行,并且是实现代码审查引入的更改的简便方法。

无论如何,即使有更多用途,也有更多的开发人员不使用它们。这是VS开发人员关注的问题:他们提供了工具,但并不默认全部开启。


0

显然,唯一的“确定性”答案必须来自VS开发团队中的某个人。我总是启用行号,但在阅读了这篇文章后,我开始改变想法了。关于“为什么默认关闭”,我并不认为杂乱无序是一个问题。然而,我确实看到了一个有说服力的论点,即“强制”自己不使用行号。正如Jon Skeet所提到的,我真正需要行号的时候只有从堆栈跟踪中。具体来说,是从外部堆栈跟踪中,因为据我所知,所有内部行引用也会在您单击它们时将您带到该行。对于外部引用,我可以看到如何通过强制自己使用“转到行”而不是寻找它来节省时间。

简而言之?关闭行号,你就会强迫自己使用工具来查找特定的行,而不是寻找。


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