Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio:从撤消/重做堆栈中排除大纲_Visual Studio_Ide_Undo_Outlining - Fatal编程技术网

Visual studio Visual Studio:从撤消/重做堆栈中排除大纲

Visual studio Visual Studio:从撤消/重做堆栈中排除大纲,visual-studio,ide,undo,outlining,Visual Studio,Ide,Undo,Outlining,在VisualStudio中有一件非常烦人的事情:当我展开或折叠一个方法或代码区域时,这个操作被推到撤消堆栈上。因此,如果我在一个方法中编辑一些代码,然后折叠该方法,然后想要撤消我的更改,我必须撤消两次:一次用于折叠操作,一次用于代码更改。如果您在编辑代码后展开或折叠了一些内容,编辑器不断跳转到不同的位置,并且您不知道更改是否已撤消,那么这可能会非常混乱 所以我的问题是:有可能禁用这种行为吗?i、 例如,在撤销堆栈中只考虑代码中的更改 PS:我正在使用VisualStudio2008 如果这种

在VisualStudio中有一件非常烦人的事情:当我展开或折叠一个方法或代码区域时,这个操作被推到撤消堆栈上。因此,如果我在一个方法中编辑一些代码,然后折叠该方法,然后想要撤消我的更改,我必须撤消两次:一次用于折叠操作,一次用于代码更改。如果您在编辑代码后展开或折叠了一些内容,编辑器不断跳转到不同的位置,并且您不知道更改是否已撤消,那么这可能会非常混乱

所以我的问题是:有可能禁用这种行为吗?i、 例如,在撤销堆栈中只考虑代码中的更改

PS:我正在使用VisualStudio2008



如果这种行为也让你烦恼,请

我能提出的最佳解决方案是先使用CTRL+M,然后使用CTRL+p禁用大纲绘制。

我认为没有办法禁用这种行为

作为替代方案,“撤消”和“重做”工具栏图标具有历史记录下拉列表,可让您直观地查看要撤消或重做的最近更改的摘要。这有时有助于确保你正在撤销(或重做)你所期待的


由于这并不总是足以确切地知道更改是什么(撤消历史记录仅显示摘要),因此我偶尔使用的解决方案是将撤消(ctrl-z)、重做(ctrl-y)和再次撤消结合起来。第一次撤消将移动到发生更改的位置(并撤消该更改)。重做将撤消撤消(实质上重复上次所做的更改)。最后一次撤销将再次执行撤销,窗口滚动到我可以看到撤销发生的位置,并确认这是否是我希望撤销的更改。这不是很有效,但可以非常有效地确保代码处于真正期望的状态。

首先,似乎并不是所有的大纲操作都记录在撤消/重做堆栈中

  • 切换大纲扩展(CTRL+M/CTRL+M)记录在堆栈中
  • 切换堆栈中记录的所有大纲(CTRL+M/CTRL+L)
  • 折叠到定义(CTRL+M/CTRL+O)不会记录在堆栈中
因此,据我所知,在VisualStudio2008中,不可能避免在撤消/重做堆栈中记录切换操作


您可以为每个源类型启用/禁用大纲显示的唯一选项。对于C#,可以在工具中启用/禁用大纲→ 选项文本编辑器C#高级使用在文件打开时进入大纲模式复选框。

您可以投票将其修复。

我做了一些探索,发现Visual Studio中实际上有一个选项可以禁用此行为,但它似乎没有在用户界面中的任何位置公开。但是,您可以通过编程方式设置它,并且我测试了它是否工作,因此(技术上)是可能的

选择是:

你可以这样设置:

textView.Options.SetOptionValue(DefaultTextViewOptions.OutliningUndoOptionId, false);
有了这些信息,可以编写一个非常简单的Visual Studio扩展来为所有新的
ITextView
实例切换此设置。

我创建了一个扩展,该扩展不包括从Visual Studio 2017/2019中记录到撤消/重做堆栈的扩展和折叠操作


感谢瑞克·斯莱德基的创意

不,这不是一个选项。。。我真的很喜欢代码大纲功能,我只是不想让它成为撤销堆栈的一部分,就像我对Cedrik说的,我不想禁用大纲功能。。。我喜欢它,并想保留它。然后,你将不得不处理撤消/重做。事实上,我可以使用历史下拉列表。。。我不太确定您使用快捷键的解决方案,但是,它不是很方便;)谢谢,但我知道。。。我是创建此UserVoice条目的人;)很遗憾,微软似乎已经删除了VisualStudioUserVoice。非常好,谢谢!我可能会创建这样一个扩展;)美好的谢谢Sergey,我会试试的。不过为什么不在VS图库上发表呢?资料来源在任何地方都有吗?它在图库中。源代码不可用。在这里工作得很好。谢谢。这太棒了。谢谢你,谢尔盖。这里下载它的每个人,请在扩展商店给它评级。