Visual studio Visual Studio–;为什么行号在默认情况下是关闭的?

Visual studio Visual Studio–;为什么行号在默认情况下是关闭的?,visual-studio,user-interface,default,Visual Studio,User Interface,Default,在我看来,这样一个优秀的IDE在默认情况下会隐藏行号,这似乎完全是一种倒退。这似乎是一个明显的疏忽,或者说是糟糕的违约 这意味着我错过了一些东西——因为在VS开发团队VS我中,我知道谁更有经验 那么我错过了什么?为什么我不需要查看代码中的行号?Visual studio允许以多种方式查看代码。例如,可以使用搜索和下拉列表。例如,如果有许多命名的小函数,行号可能对您没有任何意义。因此,尽管我喜欢它们,但这并不是一个真正的问题,是吗?这是一个用户偏好的问题,没有正确或错误的方法,只要创建一个自定义设

在我看来,这样一个优秀的IDE在默认情况下会隐藏行号,这似乎完全是一种倒退。这似乎是一个明显的疏忽,或者说是糟糕的违约

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


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

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

这是一个用户偏好的问题,没有正确或错误的方法,只要创建一个自定义设置文件并将其打开,这样您就不必每次都记得设置它(尽管我确信这只是偶尔做一次,因为您很少重新安装VS)

就我而言,行号只是屏幕上的一堆乱七八糟的东西——我看不出其中有什么意义


你想要它们做什么?你不是在用80年代版本的BASIC编程吧?

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

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

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


编辑:我同意Michael的回答,对于结对编程的特定示例,它们是有用的。就我个人而言,我并不经常配对(我很高兴这样做,只是很少),所以在剩下的时间里,行号没有用处,甚至会分散注意力。

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


无论如何,即使有更多的用法,也有更多的开发人员不使用它们。这是VS开发人员关心的问题:他们给了我们手段,但他们不会在默认情况下全部打开。

配对编程时行号是必不可少的。当两个人在一起工作时,说“第35行有问题”是非常有帮助的,因为必须有一个默认值,那么最常见的偏好就是显而易见的,默认情况下是“关闭”


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

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


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

对于那些有兴趣打开行号的人来说 以代码显示行号的步骤

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

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

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

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

-或-

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

在显示部分选择行号。

显然,唯一的“确定”答案必须来自VS开发团队中的某个人。我总是启用行号,但读完这篇文章后,我开始改变主意了。就“为什么默认关闭”而言,我并不认为混乱是一个问题。然而,我确实看到了一个令人信服的论点,“强迫”自己不要使用行号。正如Jon Skeet提到的,我唯一真正需要行号的时候是从堆栈跟踪。特别是,从外部堆栈跟踪,因为如果单击所有内部行引用,它们也将直接指向该行。对于外部引用,我可以看到如何通过强迫自己使用“去排队”来节省自己的时间,而不是去寻找它


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

同意。Ctrl+G是解决堆栈跟踪问题的完美方案。@Anacrolix:想提供更多细节吗?什么样的握法与此相关?您能举一个显示行号更重要的语言的例子吗(当然,行号用作标签时除外)?需要特殊工具进行调试的语言,特别是由于缺乏虚拟机抽象(C/C++/Bash)和单一目标执行环境(Python)的缘故。在这种情况下,我们无法假设程序员的环境是否会美化执行状态,例如跳转到相应的SLOC并显示可视化调用堆栈。@Anacrolix:这并不是语言的一个功能,而是工具的一个功能。因此,我看到支持“跳转到行”(甚至记事本都支持)的编辑器比支持行号的编辑器多得多。为什么一个支持“跳转到行”的编辑器还需要支持显示所有行号,或者更确切地说,如何显示