Как я могу предотвратить «У вас есть смешанные табуляции и пробелы. Почини это?" сообщение?


155

Каждый раз, когда я вставляю код в мой файл .cs, я получаю страшную фразу "У вас смешанные пробелы и пробелы. Исправить это?" сообщение. У него есть три варианта:

Tabify
Untabify
Don't show again

Сначала я попробовал «Табифицировать» несколько раз, пока, наконец, мне не надоело, и я выбрал «Больше не показывать»; но это была психика - я все еще понимаю. Я даже пытался "Untabify", но безрезультатно. Есть ли какие-то настройки, которые я могу настроить, чтобы предотвратить эту проблему?

VisualStudio2013 tabify untabify


Вы редактировали свой файл между временем, которое вы выбрали "Больше не показывать", и временем, когда сообщение появилось снова? Возможно ли, что вы создали новую ситуацию со «смешанными табуляциями и пробелами» из-за ваших правок?
— Дэвид К

Это возможно, но я не делаю ничего другого, чем всегда, и я получаю только эти сообщения с этим проектом / средой (VS 2013).
— Б. Клэй Шеннон

1
Я подозреваю, что это действительно вещь VS2013, потому что я часто сталкивался с файлами со смешанными табуляциями и пробелами, и версии Visual Studio, которые я использовал (некоторые из них до 2013 года), никогда не жаловались на это.
— Дэвид К

2
Встречающиеся точно такой же вопрос в VS2012
— Таз

Ответы:


252

Похоже, у вас установлены Visual Studio Productivity Power Tools 2013 . Зайдите в его настройки и отключите "Fix Mixed Tabs" ...

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

Если у вас есть настройки VS по умолчанию, вкладки в редакторе преобразуются в пробелы. Поэтому (теоретически), если вы нажали «Untabify» при появлении сообщения, оно должно преобразовать все вкладки в пробелы, и ошибки не должны появляться в следующий раз. Работаете ли вы с другими разработчиками, которые имеют разные настройки вкладок в своей IDE?

ОБНОВЛЕНИЕ: В Visual Studio 2017 и более поздних версиях это автономное расширение с именем «Исправить смешанные вкладки», которое можно отключить или удалить из окна «Расширения и обновления» (Инструменты> Расширения и обновления).

введите описание изображения здесь


Нет, я единственный, кто работает над этим проектом; он не находится под контролем исходного кода (я просто использую надстройку, которая позволяет мне «Резервное копирование проекта» всякий раз, когда я хочу, и сохраняет ее в файл .zip)
— Б. Клэй Шеннон,

1
LOL ... Для чего бы это ни стоило, я просто включил настройку, поместил несколько вкладок в мой файл с помощью Блокнота, а затем получил приглашение. Нажатие untabify превратило все вкладки в пробелы, и я больше не получаю сообщение для этого файла.
— Энтони Чу

После того, как этот «инструмент производительности» стоил мне пару часов отладки, он отключился. Он «исправил» пробел между классами, изменив его на вкладку, которая из-за того, как все выглядело, выглядела как пробел. Конечно, выбирая этот класс? Невозможно, как это было "classA [tab] classB".
— Дэвид Т. Макнет

8
Это должно быть обновлено для VS2017 сейчас. Оказывается, это собственное расширение, которое теперь можно отключить
— Джо Филлипс,

@JoePhillips ты что-нибудь узнал об этом для VS2017? Я даже деинсталлировал расширение, но все равно получил это раздражающее сообщение. (кстати: настройки для расширения продолжают отображаться в окне настроек vs после деинсталляции и перезапуска).
— Рене Фогт

74

Обновление для Visual Studio 2017. Если вы хотите отключить «У вас смешанные табуляции и пробелы. Исправить это?» сообщение, вы должны перейти к

Инструменты → Расширения и обновления…

В появившихся окнах найдите Fix Mixed Tabs (изображение ниже) и нажмите «Отключить» или «Удалить» в зависимости от того, что вы хотите.

Отключение смешанных вкладок


3
Я бы хотел, чтобы это делалось автоматически. У меня есть текстовый редактор, настроенный на использование табуляции вместо пробелов, но когда я перехожу на новую строку, отступ устанавливается как пробел.
— Синджай

1
Работает и для Visual Studio 2019.
— Userom

3
Для VS 2019 это « Расширения → Управление расширениями ».
— Уве Кейм

13

Связанный: Если вы хотите, чтобы Productivity Power Tools уведомлял вас о символах табуляции / пробелах, но вы продолжаете получать сообщение сразу после нажатия кнопки Исправить это тогда выберите «Инструменты»> «Параметры»> «Текстовый редактор»> [язык]> «Вкладки».

Установите это, чтобы держать вкладки

Если для него установлено значение Вставить пробелы и вы щелкнете Сохранить вкладки в уведомлении «Электроинструменты», то VS сохранит пробелы после сохранения, после чего уведомление сразу же всплывет снова ... а теперь вы застряли в цикле.


3

Отредактируйте файл с помощью vim run: перезагрузите и сохраните файл, и все готово!

vim file 
:retab
:wq

с помощью: retab вы можете конвертировать все вкладки в пробелах, если вы установили expandtab (: установить expandtab), это означает, что все вкладки в пробелах будут развернуты или наоборот (: set noexpandtab) и все вкладки, сделанные с пробелом, будут преобразованы в вкладки.


или просто автоформат в визуальной студии, и он делает то же самое
— Джон Ливермор
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.