Можно ли настроить Visual Studio 2008 на автоматическое удаление пробелов в конце каждой строки при сохранении файла? Похоже, что встроенной опции нет, есть ли для этого какие-нибудь расширения?
122
Можно ли настроить Visual Studio 2008 на автоматическое удаление пробелов в конце каждой строки при сохранении файла? Похоже, что встроенной опции нет, есть ли для этого какие-нибудь расширения?
Ответы:
CodeMaid - очень популярное расширение Visual Studio, которое делает это автоматически вместе с другими полезными очистками.
Я настроил его на очистку файла при сохранении, что, как мне кажется, используется по умолчанию.
источник
Найти / заменить с помощью регулярных выражений
В диалоговом окне «Найти и заменить» разверните « Параметры поиска» , установите флажок « Использовать» и выберите « Регулярные выражения».
Что найти : "
:Zs#$
"Заменить на : ""
нажмите " Заменить все"
В других редакторах ( обычном парсере регулярных выражений) "
:Zs#$
" было бы "\s*$
".источник
[^\S\r\n]+(?=\r?$)
[:Zs\t]#$
это полезная адаптация.Вы можете создать макрос, который будет выполняться после сохранения, чтобы сделать это за вас.
Добавьте следующее в модуль EnvironmentEvents для ваших макросов.
Уже некоторое время пользуюсь без проблем. Я не создавал макрос, а модифицировал его из файла ace_guidelines.vsmacros, который можно найти с помощью быстрого поиска в Google.
источник
Перед сохранением вы можете использовать ярлык автоформатирования CTRL+ K+ D.
источник
Вы можете легко сделать это с помощью следующих трех действий:
Ctrl+ A(выделить весь текст)
Правка -> Дополнительно -> Удалить горизонтальные пробелы
Правка -> Дополнительно -> Выбор формата
Подождите несколько секунд и готово.
Это Ctrl+ Zвозможно, если что-то пошло не так.
источник
Взяв элементы из всех уже приведенных ответов, вот код, который у меня получился. (В основном я пишу код на C ++, но при необходимости легко проверить наличие различных расширений файлов.)
Спасибо всем, кто внес свой вклад!
источник
Вы можете использовать макрос, подобный описанному в разделе Удаление пробелов и перезапись комментариев, используя поиск по регулярным выражениям.
источник
Я использую VWD 2010 Express, где макросы, к сожалению, не поддерживаются. Так что я просто сделать копию / вставить в Notepad ++ в левом верхнем углу меню
Edit
>Blank Operations
>Trim Trailing Space
есть и другие связанные с ними операции доступны также. Затем скопируйте / вставьте обратно в Visual Studio.Можно также использовать NetBeans вместо Notepad ++, в котором есть пункт «Удалить конечные пробелы» в меню «Источник».
источник
Если это не проект одного человека, не делайте этого. Сопоставление ваших локальных файлов с репозиторием исходного кода должно быть тривиальным, а очистка пробелов изменит строки, которые вам не нужно изменять. Я полностью понимаю; Мне нравится, когда мои пробелы становятся единообразными, но от этого следует отказаться ради более чистого сотрудничества.
источник
Я думаю, что версию Jeff Muir можно было бы немного улучшить, если бы она только обрезала файлы исходного кода (в моем случае C #, но легко добавить дополнительные расширения). Также я добавил проверку, чтобы убедиться, что окно документа видно, потому что в некоторых ситуациях без этой проверки мне показываются странные ошибки (например, файлы LINQ to SQL '* .dbml').
источник
Мне лично нравится расширение Visual Studio Trailing Whitespace Visualizer, которое поддерживается еще в Visual Studio 2012.
источник
Думаю, у меня есть версия этого макроса, которая не приведет к сбою VS2010 при рефакторинге, а также не будет зависать в среде IDE при сохранении нетекстовых файлов. Попробуй это:
источник
Я использую ArtisticStyle (C ++) для этого, а также переформатирую свой код. Однако мне пришлось добавить это как внешний инструмент, и вам нужно запустить его самостоятельно, чтобы он вам не понравился.
Тем не менее, я считаю превосходным то, что я могу переформатировать код более индивидуальным образом (например, параметры многострочной функции), что я могу заплатить цену за его запуск вручную. Инструмент бесплатный.
источник
Основываясь на ответе Дьяуса и регулярном выражении из отчета о подключении , вот макрос, который обрабатывает все сохранения, не заменяет табуляции пробелами и не требует статической переменной. Возможный недостаток? Это кажется немного медленным, возможно, из-за нескольких обращений к
FindReplace
.Для всех, кто пытается использовать это в надстройке Visual Studio 2012, я использовал регулярное выражение
[ \t]+(?=\r?$)
(при необходимости не забудьте избежать обратной косой черты). Я прибыл сюда после нескольких попыток безуспешных , чтобы исправить проблемы с сырым преобразованием в{:b}+$
неспособности соответствовать возврату каретки.источник
Это действительно хороший пример того, как удалить завершающие пробелы. Есть несколько вещей, которые я бы изменил в зависимости от того, что я обнаружил с помощью этого макроса. Прежде всего, макрос автоматически преобразует табуляции в пробелы. Это не всегда желательно и может ухудшить положение людей, которые любят вкладки (обычно на базе Linux). В любом случае проблема табуляции не то же самое, что проблема лишних пробелов. Во-вторых, макрос предполагает, что одновременно сохраняется только один файл. Если вы сохраните несколько файлов одновременно, пробелы не удаляются правильно. Причина проста. Текущий документ считается документом, который вы можете видеть. В-третьих, он не выполняет проверку на ошибки в результатах поиска. Эти результаты могут помочь лучше понять, что делать дальше. Например, если пробелы не найдены и заменены, нет необходимости повторно сохранять файл. В целом мне не понравилась необходимость сохранения глобального флага или нет. Он имеет тенденцию просить о проблемах из-за неизвестных состояний. Я подозреваю, что флаг был добавлен исключительно для предотвращения бесконечного цикла.
Я добавил окна сообщения отладки, чтобы увидеть, что происходит. Он очень ясно дал понять, что сохранение нескольких файлов не работает. Если вы хотите поиграть с ними, раскомментируйте эти строки.
Ключевое отличие заключается в использовании document.Activate () для принудительного размещения документа в активном текущем документе переднего плана. Если результат 4, значит, текст был заменен. Ноль означает, что ничего не произошло. Вы увидите по два сохранения для каждого файла. Первый заменит, а второй ничего не сделает. Потенциально могут возникнуть проблемы, если при сохранении не удастся записать файл, но, надеюсь, это событие не будет вызвано, если это произойдет.
До создания исходного сценария я не знал, как сценарии работают в Visual Studio. Немного удивительно, что он использует Visual Basic в качестве основного интерфейса, но он отлично работает для того, что ему нужно.
источник
Простое дополнение - убрать возврат каретки во время сохранения.
Ключ к этой работе - изменение \ x000d \ x000a на \ x000a. Префикс \ x указывает на шаблон Юникода. Это автоматизирует процесс подготовки исходных файлов для систем Linux.
источник