在Razor中禁用Visual Studio代码格式


118

之前曾有人问过:为什么Visual Studio代码格式不能正确用于Razor标记?

但是这个问题已经有两年了。而且Razor格式仍然完全不能接受的。我已放弃修复它。

我可以禁用CSHTML文件的所有Visual Studio格式吗?如果不是,是否可以完全禁用所有Visual Studio格式?我可以使用任何第三方黑客吗?一定有东西!

我已升级到2013,格式也一样糟糕。

[编辑]:2015年也是令人敬畏的。我真的希望他们能解决这个问题。

[编辑]:2017年也是令人敬畏的。我真的希望他们能解决这个问题。

[编辑]:2019年也是令人敬畏的。我真的希望他们能解决这个问题。



3
说真的 对此必须采取一些措施...
JustMaier 2014年

7
这也是2015年最糟糕的情况!
Paul

4
在2017年RTM中未修复
4

5
在2018
Dirk Boer

Answers:


53

你不能。自从第一个.net版本(Visual Studio 2002/2003)以来,它就以VS的“功能”构建。

关于格式化错误,有大量的连接报告,但是Microsoft完全忽略了它们,也没有将修补程序推送到“下一个版本”。您可以在此处看到示例Microsoft答案。

您可以在此处向Microsoft团队发布您自己的反馈


1
我恼怒地再次搜索这个,我不知道他们是否已经改变了一些东西,但银河战士猎人的修复工作对我来说在剃刀stackoverflow.com/a/28053865/62829
mattmanser

4
在2015年,Visual Studio中的HTML怎么还糟透了?
schmoopy 2015年

1
实际上,2015年的情况比2013年的情况更糟(C#同样适用于C#,每次打开花括号时都会缩进无关的内容)。我曾经喜欢视觉工作室,但这正在慢慢消灭它。
youen

1
请注意:现在的连接链接都已失效
jrh,

64

在工具->选项->文本编辑器-> HTML->高级下

有一个键值项“粘贴”,上面写着“粘贴时格式化”,旁边有一个布尔值。将其更改为false已为我禁用了razor语法中的粘贴格式。

我正在使用VS Professional 2013版本12.0.30110.00更新1


谢谢!粘贴上的自动(错误)格式使我发疯。这似乎消除了它。
洪流

太棒了,这正是驱除此错误所需要的!谢谢!
2015年

我会再投票给您一次,这是对2013年更新版本1和更高版本的正确回应。
Erik Simonic '16

2
在Visual 2015中不起作用?我没有在HTML中选中“粘贴时格式化” /高级功能,但粘贴时仍然会出现时髦的未格式化/疯狂缩进的情况。我正在考虑对cshtml文件使用另一个编辑器,但是随后我放弃了C#自动补全功能。这种情况太疯狂了。
youen

5
在VS2017为我工作。
戴夫

36

看的地方:

Tools -> Options -> Web Essentials -> HTML -> Auto-format HTML on Enter

(需要安装Web Essentials扩展)

设为False

Tools -> Options -> Text Editor -> HTML -> Advanced -> Format on Paste

调成 False

有了这些设置,我在Visual Studio 2013中不会遇到任何麻烦。

我曾经不得不过于频繁地按Ctrl-Z,如果在编写和测试代码后忘记理清混乱,那将是一个巨大的痛苦。我觉得Microsoft可以做很多事情来帮助用户配置它并使它更易于访问。


3
没有“网络必备”区域。
Paul

好答案!多年来一直困扰着我,但现在没有更多了!
David Kirkland

2
@Paul Web Essentials是VS扩展,它增强了许多与HTML,CSS,JS编辑器有关的内容。安装它并禁用自动格式化有很大帮助
SandRock '16

3
这应该被标记为答案。尤其是有关Web Essentials的行。谢谢@dazbradbury!
Aggromonster,

1
第二个选项在VS2017中无法修复,第一个甚至不存在。
ygoe

24

对我来说,窍门是在粘贴后按CTRL + Z,然后删除格式。


3
在这里工作...我正在粘贴一个包含<select>的块,该块具有分布在约8行上的一系列数据绑定的剔除属性,它正在杀死骆驼肠衣并去除结肠...正要撑开并重新键入它...然后我做了这个Ctrl + Z并
大喊

已投票。这在VS 2015中有效:)没有其他解决方案(“工具”>“选项”下的各种设置)对我有用,至少在粘贴应该以某种方式在代码/ html之间更改的内容时(例如,粘贴包含C#代码和html的行)无效标记或在带有C#代码的行后直接粘贴html标记。
savehansson

在VS中的任何地方,这始终有效。这是消除格式化所造成混乱的唯一方法。(或者您是否真的手动清理过??)我已经习惯了,但是非常烦人。
ygoe

10

以我为例,R#最终成为罪魁祸首,可以在此处禁用它:

ReSharper>选项>代码编辑> Razor>编辑器和格式

https://www.jetbrains.com/help/resharper/2016.1/Reference__Options__Languages__Razor__Editor.html


但是,Visual Studio不包括此功能,因此您需要单独安装它。
保罗

2
我在这里提到它的原因是有人可能会认为Visual Studio在进行格式化(就像我一样),而实际上可能是R#(很多开发人员使用)。因此,如果某人无法禁用它并安装了R#,则需要确保两者都被禁用。
hcoverlambda

5
在R#2017.3中,这些设置位于ReSharper | 选项| 环境| 编辑器 编辑者的行为
Dark Daskin

1
在R#2018.3中,我还必须将“ 编辑行为”,粘贴时的自动格式设置”设置为“无”
EM0

7

不幸的是,防止在粘贴时自动格式化的唯一方法是注释掉要粘贴一些新代码的位置,并在粘贴操作之后删除注释说明。

搜索和替换似乎不会触发自动格式化。但是粘贴会重新格式化整个代码块。

这简直是​​可怕的。它实际上使Visual Studio IDE无法用于Razor编辑。必须使用外部编辑器来处理Razor文件。

更糟糕的是,即使最新的Visual Studio 2013 Update 1始终在编辑Razor视图时崩溃。


6

有趣的是,您可以禁用C#格式和HTML格式,但不能禁用Razor格式。

我没有选中“工具>选项>文本编辑器> C#>格式>粘贴时自动格式化”,对于HTML则相同。

这会在cshtml文件中带来以下有趣的体验:

  • 粘贴HTML代码:无格式
  • 粘贴C#代码:无格式
  • 粘贴剃刀代码:格式化所有错误

而且由于没有选择来更改Razor选项,因此我猜您必须忍受这一点。

我的“解决方案”:粘贴和ctrl-z撤消自动格式


1
我也是..但是这让我发疯了!
Matt Kocaj 2014年

您的解决方案可以解决,并且在编辑大文件时需要花费几分钟。
Arturo TorresSánchez16年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.