Razor에서 Visual Studio 코드 서식 비활성화


118

이전에 질문 한 적이 있습니다. Visual Studio 코드 서식이 Razor 태그에 대해 제대로 작동하지 않는 이유는 무엇입니까?

하지만 그 질문은 몇 년 전입니다. 그리고 Razor 서식은 여전히 완전히 허용되지 않습니다. 나는 그것을 고치는 것을 포기했습니다.

CSHTML 파일에 대해 모든 Visual Studio 서식을 비활성화 할 수 있습니까? 그렇지 않은 경우 모든 Visual Studio 서식을 완전히 비활성화 할 수 있습니까? 사용할 수있는 타사 해킹이 있나요? 뭔가있을거야!

2013 년으로 업그레이드했는데 형식도 마찬가지로 나쁩니다.

[편집] : 2015 년도 끔찍합니다. 나는 그들이 이것을 고치기를 정말로 바란다.

[편집] : 2017 년도 끔찍합니다. 나는 그들이 이것을 고치기를 정말로 바란다.

[편집] : 2019 년도 끔찍합니다. 나는 그들이 이것을 고치기를 정말로 바란다.


15
2013 년 그 최악.
TombMedia

3
진지하게. ... 이것에 대해 할 수있는 뭔가를이 있어야한다
JustMaier

7
2015 년에도 너무 나빠요!
Paul

4
2017 rtm 대비 고정되지 않음
apr

5
2018 년에 수정되지 않았습니다.
Dirk Boer

답변:


53

당신은 할 수 없습니다. 이것은 첫 번째 .net 버전 (Visual Studio 2002/2003) 이후 VS의 "기능"에 내장되어 있습니다.

서식 버그에 대한 수많은 연결 보고서가 있지만 Microsoft는 완전히 무시하거나 "다음 버전"에 수정 사항을 적용합니다. 여기에서 Microsoft 답변의 예를 볼 수 있습니다 .

여기 에서 Microsoft Team에 피드백을 게시 할 수 있습니다.


1
나는 분노로 이것을 다시 검색하고 있었는데 그들이 무언가를 변경했는지 여부는 모르겠지만 Metroid Hunter의 수정은 Razor에서 나를 위해 작동합니다. stackoverflow.com/a/28053865/62829
mattmanser

4
Visual Studio의 HTML이 2015 년에도 여전히 그렇게 나빠질 수 있습니까?
schmoopy

1
실제로 2015 년에는 2013 년 버전보다 더 나쁩니다 (중괄호를 열 때마다 관련없는 항목을 들여 쓰는 C #에도 동일하게 적용됨). 나는 비주얼 스튜디오를 좋아했지만 이것은 천천히 그것을 죽이고있다.
youen apr

1
참고 : 연결 링크는 이제 모든 죽은
JRH

64

도구-> 옵션-> 텍스트 편집기-> HTML-> 고급에서

"붙여 넣기시 서식"이라는 키 값 항목 붙여 넣기가 있으며 그 옆에 부울 값이 있습니다. 이것을 false로 변경하면 razor 구문에서 붙여 넣을 때 서식을 사용할 수 없습니다.

VS Professional 2013, 버전 12.0.30110.00 업데이트 1을 사용하고 있습니다.


감사합니다! 붙여 넣기에 대한 자동 (말) 서식이 나를 미치게 만들었습니다. 이것은 그것을 제거 한 것 같습니다.
Torrents

대단해, 이것이 바로 이것을 없애기 위해 필요한 것입니다! 고마워!
Martin S Ek

나는 당신에게 한 번 더 찬성 할 것입니다. 이것은 버전 2013 up1 이상에 대한 올바른 응답입니다.
에릭 Simonic

2
Visual 2015에서 작동하지 않습니까? HTML / 고급에서 "붙여 넣기시 서식"을 선택 취소했지만 붙여 넣을 때 여전히 펑키 한 서식 해제 / 미친 들여 쓰기가 발생합니다. cshtml 파일에 대해 다른 편집기를 사용할 것을 고려하고 있지만 C # 자동 완성 기능이 느슨합니다. 이 상황은 미친 짓입니다.
youen

5
VS2017에서 나를 위해 일했습니다.
Dave

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 는 HTML, CSS, JS 편집기와 관련된 많은 것을 향상시키는 VS 확장입니다. 그것을 설치하고 자동 포맷 비활성화 하면 많은 도움이됩니다 .
SandRock

3
이것은 답으로 표시되어야합니다. 특히 Web Essentials에 대한 라인. @dazbradbury 감사합니다!
Aggromonster

1
두 번째 옵션은 VS2017에서 수정되지 않으며 첫 번째 옵션은 존재하지 않습니다.
ygoe

24

나를 위해 트릭은 붙여 넣은 후 CTRL + Z를 누른 다음 서식이 제거되었습니다.


3
여기에서 일했습니다 ... 나는 ~ 8 줄에 걸쳐 펼쳐진 일련의 데이터 바인딩 녹아웃 속성이있는 <select>를 포함하는 청크를 붙여넣고 있었고 낙타 케이스를 죽이고 콜론을 제거했습니다 ... 그것은 ... 그런 다음 나는이 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에는 포함되어 있지 않으므로 별도로 설치해야합니다.
Paul

2
내가 여기서 언급 한 이유는 누군가가 Visual Studio가 실제로 R # (많은 개발자가 사용하는) 일 수있을 때 다시 포맷팅을하고 있다고 생각할 수 있기 때문입니다. 따라서 누군가 비활성화 할 수없고 R #이 설치되어 있으면 둘 다 비활성화되어 있는지 확인하고 싶을 것입니다.
hcoverlambda

5
R # 2017.3에서 이러한 설정은 ReSharper | 옵션 | 환경 | 편집자 | 편집자 행동
Dark Daskin

1
R # 2018.3에서는 Editor Behavior, Auto-format on paste 를 "None"으로 설정해야했습니다
EM0

7

안타깝게도 붙여 넣기시 자동 서식 지정을 방지하는 유일한 방법은 새 코드를 붙여 넣을 위치를 주석 처리하고 붙여 넣기 작업 후에 주석 처리 지침을 제거하는 것입니다.

검색 및 바꾸기가 자동 서식을 트리거하지 않는 것 같습니다. 그러나 붙여 넣기는 전체 코드 블록을 다시 포맷합니다.

이것은 말보다 끔찍합니다. Visual Studio IDE를 Razor 편집에 거의 사용할 수 없게 만듭니다. Razor 파일을 위해 외부 편집기를 사용해야합니다.

더 나쁜 것은 최신 Visual Studio 2013 업데이트 1조차도 항상 Razor 뷰를 편집하는 동안 충돌한다는 것입니다.


6

재미있는 부분은 C # 형식 및 HTML 형식을 비활성화 할 수 있지만 Razor 형식은 사용할 수 없다는 것입니다.

"도구> 옵션> 텍스트 편집기> C #> 서식> 붙여 넣기시 자동 서식 지정"을 선택 취소했으며 HTML에서도 동일합니다.

그 결과 cshtml 파일에서 다음과 같은 재미있는 경험이 생깁니다.

  • HTML 코드 붙여 넣기 : 형식 없음
  • C # 코드 붙여 넣기 : 형식 없음
  • Razor 코드 붙여 넣기 : 모든 형식을 잘못 지정

그리고 Razor 옵션을 변경할 수있는 옵션이 없기 때문에 여러분은 이것으로 살아야합니다.

내 "솔루션": 붙여 넣기 및 ctrl-z를 사용하여 자동 서식을 취소합니다.


1
나도 ..하지만 날 미치게 해!
Matt Kocaj 2014 년

솔루션은 해결 방법이며 대용량 파일을 편집 할 때 몇 분 정도 걸립니다.
Arturo Torres Sánchez

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.