【问题标题】:How can I prevent Visual Studio editor from automatically horizontally scrolling when a breakpoint is hit如何防止 Visual Studio 编辑器在遇到断点时自动水平滚动
【发布时间】:2019-10-18 17:56:22
【问题描述】:

在 Visual Basic 中(我在 2005 年和 2008 年看到过这种情况),当您遇到断点或单步并且此行上的代码超出屏幕末尾时,窗口会自动向右滚动,以便尽可能多的线尽可能可见。我知道为什么这可能有用,但我发现它有点分散注意力,因为在我尝试调试时屏幕似乎跳了很多。此外,代码的上下文可能会被截断,所以如果有一些嵌套循环、ifs 等,那么其余代码可能会完全不在屏幕上,这很令人沮丧。

有谁知道如何禁用此行为?

【问题讨论】:

  • 可能会更痛苦,但你可以打开自动换行。
  • 您可以打开自动换行。这可能会更好,你可以看看 stackoverflow.com/questions/5841623/…>.
  • 自动换行似乎是唯一的选择。
  • +1 我真的很想解决这个问题。我编辑了问题以删除 VB 引用,因为 C# 也有问题。我还将标签更新为较新版本的 Visual Studio。
  • 我不知道这个功能是如何进入 VS 的。他们不会做研究并意识到开发人员会觉得这非常烦人吗?

标签: vb.net visual-studio-2008 visual-studio-2005 editor


【解决方案1】:

不是一个精确的解决方案,但您可以通过单击行号旁边的细垂直代码折叠/轮廓线将这些行颠倒过来。比向下滚动条要好一些。这是在 VS 2015 中。

【讨论】:

    【解决方案2】:

    您可以按住 ctrl 按钮并向下滚动以缩小,以便在代码视图中查看更多文档。这样做会使字体变小。

    【讨论】:

      【解决方案3】:

      您应该尽量避免编写超出屏幕边缘的代码。

      这不仅使调试变得更加困难,而且当其他人尝试阅读您的代码时,会非常困难和令人沮丧。

      您不应该将嵌套深入到任何循环中,而应该否定您的条件并使用中断/返回/转义。

      所以不要这样:

      if (condition) {
         //stuff
         if (anotherCondition) {
            //more stuff
            if (yetanotherCondition) {
                //starting to get to the edge of the screen soon...
            }
          }
      }
      

      您应该这样做:

      if (!condition) return;
      //do stuff
      
      if (!anotherCondition) return;
      //more stuff
      
      if (!yetAnotherCondition) return;
      //so much more room to work with!
      

      此外,像 linq 语句/表达式之类的东西应该被分成块以便阅读

      然后:

      var foo = MyList.select(val => val.isThing() && val.isCorrect && val.hasConditions() && val.things.Any(thing => thing.isCorrect())).orderBy(val => val.property).First();
      

      这会导致您的问题,而是这样做:

      var foo = MyList.select(val => 
          val.isThing() 
          && val.isCorrect
          && val.hasConditions() 
          && val.things.Any(thing => 
              thing.isCorrect()
              )
          )
          .OrderBy(val => val.property)
          .First();
      

      【讨论】:

      • «您应该尽量避免编写超出屏幕边缘的代码。» «这不仅使调试变得更加困难,而且当其他人尝试阅读您的代码时,它会变得非常困难和令人沮丧。»这是您的个人意见,不作为一个规则,有效和其他不同的意见。例如,我发现阅读您的代码非常难以阅读,并且非常令人沮丧的是代码拆分为更多行。这种做法,我个人认为,应该在极少数特殊情况下使用。
      • 所以,当涉及到个人意见时,请避免使用应该、必须和必须,因为这可能会造成混淆,并且开始编程的人可能会将其误认为是编程规则。
      • 使用有意义的对象名称会导致排长队。此外,被调试的通常是其他人的代码。
      • 说我想分割窗口,这样我可以同时看到多个文件。屏幕空间很重要,而且总是有限的。无论您在保持线路长度方面做得多么好,都可能发生这种情况。只是告诉人们处理不受欢迎的行为是没有帮助的。
      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多