ปิดใช้งานการจัดรูปแบบโค้ด Visual Studio ใน Razor


119

สิ่งนี้ถูกถามมาก่อน: เหตุใดการจัดรูปแบบโค้ด Visual Studio จึงไม่ทำงานอย่างถูกต้องสำหรับมาร์กอัป Razor

แต่คำถามนั้นสองสามปี และการจัดรูปแบบมีดโกนยังไม่สามารถยอมรับได้อย่างสมบูรณ์ ฉันยอมแพ้ในการแก้ไขแล้ว

ฉันสามารถปิดใช้งานการจัดรูปแบบ Visual Studio ทั้งหมดสำหรับไฟล์ CSHTML ได้หรือไม่ ถ้าไม่ฉันสามารถปิดใช้งานการจัดรูปแบบ Visual Studio ทั้งหมดได้หรือไม่ แฮ็กของบุคคลที่สามใด ๆ ที่ฉันสามารถใช้ได้? ต้องมีอะไรบางอย่าง!

ฉันอัปเกรดเป็นปี 2013 แล้วและการจัดรูปแบบก็แย่พอ ๆ กัน

[แก้ไข]: ปี 2015 ก็แย่มากเช่นกัน ฉันหวังว่าพวกเขาจะแก้ไขปัญหานี้จริงๆ

[แก้ไข]: 2017 ก็แย่มากเช่นกัน ฉันหวังว่าพวกเขาจะแก้ไขปัญหานี้จริงๆ

[แก้ไข]: ปี 2019 ก็ยอดเยี่ยมเช่นกัน ฉันหวังว่าพวกเขาจะแก้ไขปัญหานี้จริงๆ


15
แย่ที่สุดในปี 2013
TombMedia

3
อย่างจริงจัง. ต้องมีบางอย่างที่สามารถทำได้เกี่ยวกับเรื่องนี้ ...
JustMaier

7
มันแย่มากในปี 2015 เกินไป!
พอล

4
ไม่ได้รับการแก้ไขใน rtm 2017
เม.ย.

5
ไม่แก้ไขในปี 2018
Dirk Boer

คำตอบ:


53

คุณไม่สามารถ. สิ่งนี้สร้างขึ้นใน "คุณลักษณะ" ของ VS ตั้งแต่. net เวอร์ชันแรก (visual studio 2002/2003)

มีรายงานการเชื่อมต่อมากมายเกี่ยวกับข้อบกพร่องในการจัดรูปแบบ แต่ Microsoft เพิกเฉยต่อข้อบกพร่องเหล่านี้อย่างสมบูรณ์หรือผลักดันการแก้ไขเป็น "เวอร์ชันถัดไป" คุณสามารถดูตัวอย่างคำตอบที่ไมโครซอฟท์ที่นี่

คุณสามารถโพสต์คำติชมของคุณเองไปยัง Microsoft Team ได้ที่นี่


1
ฉันกำลังค้นหาสิ่งนี้ด้วยความโกรธอีกครั้งฉันไม่รู้ว่าพวกเขาได้เปลี่ยนแปลงอะไรบางอย่างหรือไม่ แต่การแก้ไขของ Metroid Hunter ใช้ได้กับฉันใน Razor stackoverflow.com/a/28053865/62829
mattmanser

4
HTML ใน Visual Studio ยังคงแย่ขนาดนี้ในปี 2015 ได้อย่างไร
schmoopy

1
จริงๆแล้วมันแย่กว่าในปี 2015 มากกว่าเวอร์ชั่น 2013 (เช่นเดียวกันกับ C # ที่มันจะเยื้องสิ่งที่ไม่เกี่ยวข้องทุกครั้งที่คุณเปิดวงเล็บปีกกา) ฉันเคยรักสตูดิโอภาพ แต่มันกำลังฆ่ามันอย่างช้าๆ
youen

1
หมายเหตุ: ตอนนี้ลิงค์เชื่อมต่อปิดให้บริการหมดแล้ว
2561

65

ภายใต้ Tools -> Options -> Text Editor -> HTML -> Advanced

มีรายการคีย์ค่าวางซึ่งระบุว่า "Format on paste" และมีค่าบูลีนอยู่ข้างๆ การเปลี่ยนสิ่งนี้เป็นเท็จได้ปิดใช้งานการจัดรูปแบบเมื่อวางสำหรับฉันในรูปแบบมีดโกน

ฉันใช้ VS Professional 2013 เวอร์ชัน 12.0.30110.00 Update 1


ขอบคุณ! การจัดรูปแบบอัตโนมัติ (mal) บนการวางทำให้ฉันแทบคลั่ง สิ่งนี้ดูเหมือนจะกำจัดมันออกไป
Torrents

ยอดเยี่ยมนี่คือสิ่งที่จำเป็นในการขับไล่สิ่งนี้! ขอบคุณ!
Martin S Ek

ฉันจะโหวตให้คุณมากกว่าหนึ่งครั้งนี่คือคำตอบที่ถูกต้องสำหรับ vs เวอร์ชัน 2013 up1 และใหม่กว่า
Erik Simonic

2
ไม่ทำงานในภาพ 2015? ฉันไม่ได้เลือก "format on paste" ใน HTML / ขั้นสูง แต่ยังคงได้รับการเยื้องที่ไม่ได้จัดรูปแบบ / การเยื้องอย่างบ้าคลั่งเมื่อวาง ฉันกำลังพิจารณาที่จะใช้โปรแกรมแก้ไขอื่นสำหรับไฟล์ cshtml แต่ฉันก็ไม่ต้องเติมข้อความอัตโนมัติ C # สถานการณ์นี้มันบ้า
คุณ

5
ทำงานให้ฉันใน VS2017
Dave

37

สถานที่ดู:

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 บ่อยเกินไปและถ้าคุณลืมคลายความยุ่งเหยิงเมื่อโค้ดของคุณถูกเขียนและทดสอบเป็นความเจ็บปวดอย่างมาก ผมรู้สึกว่าไมโครซอฟท์จะทำมากที่จะช่วยให้ผู้ใช้กำหนดค่านี้เช่นเดียวกับทำให้มันเข้าถึงได้มากขึ้น


3
ไม่มีพื้นที่ 'ข้อมูลสำคัญเกี่ยวกับเว็บ'
ปอ.

ตอบโจทย์มาก! สิ่งนี้ทำให้ฉันสับสนมาหลายปีแล้ว แต่ไม่อีกแล้ว!
David Kirkland

2
@Paul Web Essentialsเป็นส่วนขยาย VS ที่ปรับปรุงหลายสิ่งที่เกี่ยวข้องกับตัวแก้ไข HTML, CSS, JS การติดตั้งและการปิดการจัดรูปแบบอัตโนมัติช่วยให้มาก
SandRock

3
สิ่งนี้ควรถูกทำเครื่องหมายว่าเป็นคำตอบ โดยเฉพาะอย่างยิ่งสายเกี่ยวกับ Web Essentials ขอบคุณ @dazbradbury!
Aggromonster

1
ตัวเลือกที่สองไม่สามารถแก้ไขได้ใน VS2017 และตัวเลือกแรกไม่มีอยู่จริง
ygoe

24

เคล็ดลับสำหรับฉันคือการกด CTRL + Z หลังจากวางแล้วการจัดรูปแบบจะถูกลบออก


3
ทำงานที่นี่ ... ฉันกำลังวางชิ้นส่วนซึ่งรวมถึง <select> ด้วยชุดของแอตทริบิวต์ที่น่าพิศวงที่เชื่อมโยงข้อมูลกระจายออกไปประมาณ 8 บรรทัดและมันกำลังฆ่าปลอกอูฐและเอาโคลอนออก ... กำลังจะถ่อและพิมพ์ใหม่ มัน ... จากนั้นฉันก็ทำ Ctrl + Z และพูดประมาณว่ามันใช้งานได้ ... @ Miros
beauXjames

upvoted สิ่งนี้ใช้ได้ใน VS 2015 :) ไม่มีวิธีแก้ปัญหาอื่น ๆ (การตั้งค่าต่างๆภายใต้เครื่องมือ> ตัวเลือก) สำหรับฉันอย่างน้อยก็ไม่ใช่เมื่อวางเนื้อหาที่ควรเปลี่ยนระหว่างรหัส / html ไม่ทางใดก็ทางหนึ่งเช่นการวางบรรทัดที่มีรหัส C # ตามด้วย html แท็กหรือวางมาร์กอัป html หลังบรรทัดด้วยรหัส C #
savehansson

สิ่งนี้ใช้ได้ทุกที่ใน VS. นี่เป็นวิธีเดียวที่จะยกเลิกความยุ่งเหยิงที่การจัดรูปแบบทำ (หรือว่าคุณทำความสะอาดด้วยตนเองจริงๆ ??) ฉันเคยชินแล้ว แต่มันน่ารำคาญมาก
ygoe

10

ในกรณีของฉัน R # กลายเป็นผู้ร้ายสามารถปิดใช้งานได้ที่นี่:

ReSharper> ตัวเลือก> การแก้ไขโค้ด> มีดโกน> ตัวแก้ไขและการจัดรูปแบบ

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 | ตัวเลือก | สิ่งแวดล้อม | บรรณาธิการ | Editor Behavior
Dark Daskin

1
ใน R # 2018.3 ฉันต้องตั้งค่าEditor Behavior ด้วยโดยให้วางรูปแบบอัตโนมัติเป็น "ไม่มี"
EM0

7

น่าเสียดายที่วิธีเดียวในการป้องกันการจัดรูปแบบอัตโนมัติในการวางคือการแสดงความคิดเห็นเกี่ยวกับตำแหน่งที่คุณจะวางโค้ดใหม่และหลังจากการวางเพื่อลบคำแนะนำในการแสดงความคิดเห็น

การค้นหาและแทนที่ดูเหมือนจะไม่ทริกเกอร์การจัดรูปแบบอัตโนมัติ แต่การวางจะฟอร์แมตบล็อกโค้ดทั้งหมด

นี่มันแย่เกินคำบรรยาย ทำให้ Visual Studio IDE ใช้งานไม่ได้สำหรับการแก้ไขด้วย Razor เราต้องใช้โปรแกรมแก้ไขภายนอกสำหรับไฟล์ Razor

ยิ่งไปกว่านั้นแม้ Visual Studio 2013 Update 1 ล่าสุดยังขัดข้องขณะแก้ไขมุมมอง Razor ตลอดเวลา


6

ส่วนที่น่าสนุกคือคุณสามารถปิดใช้งานการจัดรูปแบบ C # และการจัดรูปแบบ HTML ได้ แต่ไม่ใช่การจัดรูปแบบมีดโกน

ฉันได้ยกเลิกการเลือก "Tools> Options> Text Editor> C #> Formatting> Automatically format on paste" และเช่นเดียวกับ HTML

ซึ่งส่งผลให้เกิดประสบการณ์ความสนุกดังต่อไปนี้ในไฟล์ cshtml:

  • วางโค้ด HTML: ไม่มีรูปแบบ
  • วางรหัส C #: ไม่มีรูปแบบ
  • วางรหัสมีดโกน: จัดรูปแบบทุกอย่างผิด

และเนื่องจากไม่มีตัวเลือกในการเปลี่ยนตัวเลือก Razor คุณต้องอยู่กับสิ่งนี้ฉันเดา

"วิธีแก้ปัญหา" ของฉัน: วางและ ctrl-z เพื่อเลิกทำรูปแบบอัตโนมัติ


1
ฉันก็เช่นกัน .. แต่มันทำให้ฉันคลั่ง!
Matt Kocaj

วิธีแก้ปัญหาของคุณเป็นวิธีแก้ปัญหาและใช้เวลาไม่กี่นาทีในการแก้ไขไฟล์ขนาดใหญ่
Arturo Torres Sánchez

0

ฉันพบการตั้งค่าเหล่านี้ใน Resharper 2019 ซึ่งช่วยปรับปรุงประสบการณ์ของฉัน: ใส่คำอธิบายภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.