ฉันจะป้องกัน“ คุณมีแท็บและช่องว่างหลายแบบผสมกันได้อย่างไร แก้ไขปัญหานี้?" ข้อความ?


155

เมื่อใดก็ตามที่ฉันวางรหัสลงในไฟล์. cs ของฉันฉันจะได้รับข้อความ "คุณมีแท็บและช่องว่างที่หลากหลาย ข่าวสาร มันมีสามตัวเลือก:

Tabify
Untabify
Don't show again

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

แท็บ VisualStudio2013 ไม่เปลี่ยนแปลง


คุณแก้ไขไฟล์ระหว่างเวลาที่คุณเลือก "ไม่แสดงอีก" และเวลาที่ข้อความเกิดขึ้นอีกหรือไม่ เป็นไปได้หรือไม่ที่คุณสร้างสถานการณ์ "แท็บและช่องว่างผสม" ใหม่เนื่องจากการแก้ไขของคุณ?
David K

เป็นไปได้ แต่ฉันไม่ได้ทำอะไรที่แตกต่างจากที่ฉันมีอยู่เสมอและฉันได้รับข้อความเกี่ยวกับโครงการ / สภาพแวดล้อมนี้ (VS 2013) เท่านั้น
B. Clay Shannon

1
ฉันสงสัยว่านี่เป็นเพียง VS2013 เพราะฉันพบไฟล์ที่มีแท็บและช่องว่างหลายแบบรวมทั้ง Visual Studio รุ่นที่ฉันใช้ (หลาย ๆ ไฟล์ก่อนปี 2013) ไม่เคยบ่นเลย
David K

2
พบปัญหาเดียวกันที่แน่นอนใน VS2012
taz

คำตอบ:


252

ดูเหมือนว่าคุณติดตั้งVisual Studio Productivity Power Tools 2013แล้ว เข้าสู่การตั้งค่าและปิด "แก้ไขแท็บผสม" ...

Tools -> Options -> Productivity Power Tools -> Turn Extensions On/Off

หากคุณมีการตั้งค่า VS เริ่มต้นแท็บในตัวแก้ไขจะถูกแปลงเป็นช่องว่าง ดังนั้น (ในทางทฤษฎี) ถ้าคุณคลิก Untabify เมื่อข้อความปรากฏขึ้นมันควรแปลงแท็บทั้งหมดเป็นช่องว่างและข้อผิดพลาดไม่ควรปรากฏในครั้งต่อไป คุณทำงานกับนักพัฒนาอื่น ๆ ที่มีการตั้งค่าแท็บต่าง ๆ ใน IDE ของพวกเขาหรือไม่?

อัปเดต: ใน Visual Studio 2017 ขึ้นไปนี่เป็นส่วนขยายแบบสแตนด์อโลนชื่อ "แก้ไขแท็บผสม" ที่สามารถปิดใช้งานหรือถอนการติดตั้งจากหน้าต่าง "ส่วนขยายและการอัพเดท" (เครื่องมือ> ส่วนขยายและอัปเดต)

ป้อนคำอธิบายรูปภาพที่นี่


ไม่ฉันเป็นคนเดียวที่ทำงานในโครงการนี้ มันไม่ได้อยู่ในการควบคุมแหล่งที่มา (ฉันเพิ่งใช้ Add-in ที่อนุญาตให้ฉัน "Backup Project" เมื่อใดก็ตามที่ฉันต้องการและมันจะบันทึกลงในไฟล์. zip)
B. Clay Shannon

1
ฮ่า ๆ ... สำหรับสิ่งที่คุ้มค่าฉันเพิ่งเปิดใช้งานการตั้งค่าใส่แท็บมากมายในไฟล์ของฉันโดยใช้ Notepad แล้วได้รับพรอมต์ การคลิกที่ไม่มีการแก้ไขทำให้แท็บทั้งหมดกลายเป็นช่องว่างและฉันไม่ได้รับข้อความอีกครั้งสำหรับไฟล์นั้น
Anthony Chu

หลังจาก "เครื่องมือเพิ่มประสิทธิภาพ" นี้ทำให้ฉันมีค่าใช้จ่ายในการดีบักสองสามชั่วโมงก็จะถูกปิด มัน "แก้ไข" ช่องว่างระหว่างชั้นเรียนเปลี่ยนเป็นแท็บซึ่งเป็นเพราะวิธีการวางสิ่งที่ดูเหมือนเป็นช่องว่าง แน่นอนว่าการเลือกชั้นเรียนนั้น? เป็นไปไม่ได้เนื่องจากเป็น "classA [tab] classB"
David T. Macknet

8
จำเป็นต้องได้รับการอัปเดตสำหรับ VS2017 ทันที ตามที่ปรากฎนี่เป็นส่วนขยายของตัวเองที่สามารถปิดการใช้งานได้ในตอนนี้
Joe Phillips

@ JoePhillips คุณค้นพบอะไรเกี่ยวกับเรื่องนี้สำหรับ VS2017? ฉันยังdeinstalledนามสกุล แต่ยังคงได้ว่าข้อความที่น่ารำคาญ (btw: การตั้งค่าสำหรับส่วนขยายยังคงปรากฏขึ้นในหน้าต่างการตั้งค่า vs หลังจากยกเลิกการติดตั้งและเริ่มต้นใหม่)
René Vogt

74

อัปเดตสำหรับ Visual Studio 2017 หากคุณต้องการปิดการใช้งาน "คุณมีแท็บและช่องว่างแบบผสมแก้ไขได้ไหม" ข้อความคุณควรไปที่

เครื่องมือ→ส่วนขยายและอัปเดต ...

ในหน้าต่างที่โผล่ขึ้นมาให้ค้นหา Fix Mixed Tabs (ภาพด้านล่าง) แล้วคลิกที่ Disable หรือ Uninstall ตามสิ่งที่คุณต้องการ

ปิดการใช้งานแท็บผสม


3
ฉันหวังว่ามันจะทำโดยอัตโนมัติ ฉันได้ตั้งค่าตัวแก้ไขข้อความให้ใช้แท็บแทนช่องว่าง แต่เมื่อฉันไปที่บรรทัดใหม่การเยื้องจะถูกกำหนดเป็นช่องว่าง
สินใจ

1
ใช้งานได้กับ Visual Studio 2019 เช่นกัน
userom

3
สำหรับ VS 2019 เป็น " ส่วนขยาย→จัดการส่วนขยาย "
Uwe Keim

13

สิ่งที่เกี่ยวข้อง: ถ้าคุณต้องการเครื่องมือเพิ่มประสิทธิภาพการผลิตเพื่อแจ้งให้คุณทราบเกี่ยวกับแท็บ / ช่องว่าง แต่คุณได้รับข้อความทันทีหลังจากคลิกแก้ไขแล้วดูในเครื่องมือ> ตัวเลือก> ตัวแก้ไขข้อความ> [ภาษา]> แท็บ

ตั้งค่านี้เป็นแท็บ Keep

หากคุณตั้งไว้ที่แทรกช่องว่างและคุณคลิกเก็บแท็บในการแจ้งเตือนเครื่องมือไฟฟ้าแล้ว VS จะแทรกช่องว่างอีกครั้งหลังจากบันทึกทำให้การแจ้งเตือนปรากฏขึ้นอีกครั้งทันที ... ตอนนี้คุณติดอยู่ในวงแล้ว


3

แก้ไขไฟล์ด้วย vim run: retab และบันทึกไฟล์เสร็จแล้ว!

vim file 
:retab
:wq

ด้วย: retab คุณสามารถแปลงแท็บทั้งหมดในช่องว่างถ้าคุณตั้ง expandtab (: set expandtab) หมายความว่าขยายแท็บทั้งหมดในช่องว่างหรือในทางกลับกัน (: ตั้ง noexpandtab) และแท็บทั้งหมดที่ทำด้วยช่องว่างจะถูกแปลงเป็นแท็บ


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