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

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) и все вкладки, сделанные с пробелом, будут преобразованы в вкладки.

Сержио
источник
или просто автоформат в визуальной студии, и он делает то же самое
Джон Ливермор