Visual Studio – 为啥默认关闭行号?

Posted

技术标签:

【中文标题】Visual Studio – 为啥默认关闭行号?【英文标题】:Visual Studio – why are line numbers off by default?Visual Studio – 为什么默认关闭行号? 【发布时间】:2009-11-12 07:04:07 【问题描述】:

在我看来,如此出色的 IDE 默认会隐藏行号,这对我来说似乎完全倒退了。这似乎是一个明显的疏忽或糟糕的默认值。

这意味着我错过了一些东西——因为在 VS 开发团队 vs 我中,我知道谁更有经验。

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

【问题讨论】:

我会给你一个 +1。这让我在一些 IDE 中感到困惑......我的意思是,它在 VS 中可能更有意义,因为它有一个很好的调试器,你只需点击它就会把你带到罪魁祸首行,但是当使用 php 或其他东西时其他 IDE,它只是向您吐出一个行号,而您实际上必须找到它...行号非常有用。 所以,看来我缺少的是对 IDE 的熟悉程度……我习惯于在更简单的环境中工作,其中行号更为重要。从大家在这里提出的情况来看,确实没有令人信服的理由在 VS 中展示它们。 @Mark:您无需单击即可到达正确的行。几乎我用过的每个编辑器都有一个“转到第 X 行”功能,即使它没有在侧面显示行号。当然,输入行号比上下滚动查找更容易。 这个ux.se answer 给出了为什么行号默认打开的另一种解释。 【参考方案1】:

结对编程时,行号是必不可少的。当两个人一起工作时,说“第 35 行有问题”这样的话是很有帮助的

【讨论】:

在这种情况下我可以理解“有用”,但真的“必要”吗?我当然已经结对编程,但从未谈论过行号。我通常会说“在方法 XXX 中”或“当你做 XYZ 时你不是在做 ABC”——或者只是指着屏幕。 仅当您不喜欢屏幕上的指纹或您的同事要指出某事时脸上的腋窝时才必不可少:) 说“第 167 行”比说“Jay S Config dot Date Handler”容易得多【参考方案2】:

我对行号感兴趣的唯一时间是我给出了一个特定的行号(例如在堆栈跟踪中)。那时我想去那条特定的行(我可以直接做),但我不需要查看周围的行号。

我看重屏幕上的内容,而行号对我来说只是浪费。

我认为更大的问题是问自己为什么想要查看行号。为什么它们对你很重要?在什么情况下需要查看当前页面的所有行号,而不仅仅是当前行(显示在状态栏中)?

编辑:我同意迈克尔的回答,即对于结对编程的具体示例,它们很有用。就我个人而言,我碰巧不经常配对(我很高兴这样做,只是很少见),因此行号在其余时间没有用处 - 甚至会分散注意力。

【讨论】:

同意。 Ctrl + G 是堆栈跟踪情况的完美解决方案。 @Anacrolix:愿意提供更多细节吗?什么样的手持方式在这里是相关的?你能举一个语言的例子吗?显示行号更重要(当然,当它们用作标签时除外)? 出于调试目的需要特殊工具的语言,特别是由于缺乏虚拟机抽象 (C/C++/Bash) 和多个单一目标执行环境 (Python)。在这种情况下,我们无法假设程序员的环境是否会美化执行状态,例如跳转到相应的 SLOC 并显示可视化调用堆栈。 @Anacrolix:这感觉不像是 language 的一个特性——它是 tool 的一个特性。因此,我看到支持“跳转到行”(甚至 Notepad 支持)的编辑器比支持行号的编辑器多得多。为什么确实支持“跳转到行”的编辑器还需要支持显示所有行号 - 或者更确切地说,这种能力如何补偿其他支持这些的工具特点? @iosamurai:所以请使用状态栏的行号部分,它会显示您所在的行号。还是这种情况如此经常发生在您身上,以至于您真的没有时间将光标移到正确的行上?【参考方案3】:

鉴于必须有一个默认值,那么最常见的偏好将是显而易见的,默认情况下将是“关闭”。

虽然我可以轻松地不用它们,但我个人喜欢行号,因为我倾向于 a) 使用它们在代码文件中定位自己,b) 在与其他程序员谈论代码时使用它们是让他们了解的最快方法我们正在讨论的特定代码行和 c) 散发出一股代码味道并提醒我正在处理的特定代码文件有多大。

【讨论】:

+1 - 当它们被隐藏时,缺乏方向性会让我感到厌烦,我习惯于通过我所在的行来了解我在文件中的位置。 @nailitdown:为什么这对你很重要?滚动条不会大致显示您相对于文件大小的位置吗?状态栏向您显示包含光标的行...我仍在努力了解为什么我需要知道 每一行 行的行号。 Jon - 这不是关于“每个人都需要行号”.. 这只是我的一个习惯 - 我看了一眼行号以获得我在哪里的参考,“OK x() 就在附近140,y() 大约是 320。”然后我可以轻弹到系统的其他部分,或多或少地直接弹回我所在的位置。我非常专注于键盘,所以我还没有完全采用 VS 下拉菜单直接进入特定方法。 VS 没有诸如跳转到特定方法之类的键盘快捷键吗?当然,它一定有……只使用过 Eclipse 的人说。【参考方案4】:

这是用户偏好的事情,没有正确或错误的方法,只需创建一个打开它的自定义设置文件,这样您就不必每次都记住设置它(虽然我确信这只是永远偶尔做一次,因为你很少重新安装VS)

【讨论】:

【参考方案5】:

就我而言,行号只是屏幕更杂乱 - 我看不出它们有什么意义。

你想要它们做什么?您不是在使用 1980 年代的 BASIC 版本进行编程吗?

【讨论】:

即使他这样做了,行号与数字行标签无关 试纸,它绝对是结对编程的重点。你如何告诉你的伙伴你指的是代码的哪一部分?您不想伸手到屏幕上用手指指向 - 相反,您只需指出行号。 @mbader - 请记住,我的帖子已经有 5 年历史了,当时屏幕的分辨率往往比现在低。尽管如此,我在过去 3 年中使用的每个编辑器在状态栏中都有一个字段,告诉您光标所在的行号。您无需浪费屏幕空间在每一行打印一个数字。【参考方案6】:

有什么关系,只要有显示或隐藏它们的选项?

我的偏好是关闭它们 - 我认为它们通常会浪费宝贵的屏幕空间。您可以在状态栏中查看您所在的行,并且可以转到 (ctrl+G) 任何行。但有时它们会很有用。

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

对于那些有兴趣打开行号的人 在代码中显示行号

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

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

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

注意: Visual C# Express 用户必须单击 Show All Settings 才能显示 All Languages 子文件夹。

——或者——

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

在显示部分选择行号。

【讨论】:

【参考方案9】:

行号可能对一个有用,而屏幕上的痛苦对另一个有用。他们可以提供的所有帮助:快速访问异常堆栈日志中提到的确切行,以及实现代码审查引入的更改的简单方法。

不管怎样,即使有更多的用法,也有更多的开发者不使用它们。这也是 VS 开发人员关心的问题:他们给了我们方法,但默认情况下他们不会全部打开。

【讨论】:

【参考方案10】:

显然,唯一的“确定”答案必须来自 VS 开发团队中的某个人。我总是启用行号,但在阅读了这篇文章后,我开始改变了。就“为什么默认关闭”而言,我并不认为混乱是一个问题。但是,我确实看到了一个令人信服的论点,即“强迫”自己不使用行号。正如 Jon Skeet 所提到的,我真正需要行号的唯一一次是来自堆栈跟踪。具体来说,从外部堆栈跟踪中,因为 AFAIK 所有内部行引用也会在您单击它们时将您引导至该行。对于外部参考,我可以看到如何通过强迫自己使用“go to line”而不是寻找它来节省自己的时间。

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

【讨论】:

以上是关于Visual Studio – 为啥默认关闭行号?的主要内容,如果未能解决你的问题,请参考以下文章

3.设置Visual Studio 字体/背景/行号

为啥 Visual Studio 只返回整数? [关闭]

为啥 Visual Studio 告诉我 AddJsonFile() 方法未定义?

为啥 C++ 中的 Visual Studio 不如 C# 中的智能? [关闭]

为啥我收到错误“Microsoft Visual Studio 2012 已停止工作”(当我单击文本框时)[关闭]

Visual Studio 代码编辑器中的问题。为啥我保存文件时会关闭它们?