Есть ли способ, чтобы всегда имел окончание строки LF в Visual Studio? Кажется, я никогда не найду его!





Надеюсь, эта статья поможет вам:
Как сохранить файл из Visual C++ в формате UNIX
К сожалению, по умолчанию это единственный способ сохранить файлы в формате Unix.
Лично я использую опцию «Предварительное сохранение» в диалоговом окне «Сохранить файл». Но, честно говоря, мне никогда не приходилось работать с большим количеством файлов в формате Unix из MSVS.
Ах, смотрите ниже плагин надстройки Strip'em. Все еще несколько глупо обходить это ограничение MSVC, но, по крайней мере, несколько проще и чище.
Visual Studio 2008 не сохраняет расширенные параметры сохранения после закрытия решения. Я был бы готов вручную отредактировать много файлов, если бы это обеспечило стабильную работу, но я не хочу менять все настройки каждый раз, когда открываю VS.
Это очень плохо. Поскольку VS поддерживает принуждение окончаний строк к тому, что требуется в бэкэнде, он просто не подключается должным образом в пользовательском интерфейсе. Может быть, Microsoft исправит это не пакетом обновлений.
Существует надстройка для Visual Studio 2008, которая преобразует формат конца строки при сохранении файла. Вы можете скачать его здесь: http://grebulon.com/software/stripem.php
ИМХО, это должен быть выбранный ответ на этот пост.
@ ShaChris23 - согласился; это именно то, что нам нужно сейчас. Но выбранный ответ был выбран 11 ДО того, как Strip'em даже был выпущен.
Также существует его версия для VS2010, так что это хороший ответ.
Система голосования должна гарантировать, что это будет видно.
Этот аддон избавляет меня от головной боли в vs2012.
Да, есть способ всегда иметь окончания строк LF, по крайней мере, в Visual Studio 2010 Pro.
Перейти к Tools | Options... | Environment | Documents
Затем включите опцию Проверка согласованности окончаний строк при загрузке.
Меня устраивает.
У меня не работает. Я уже проверил это, и он настаивает на сохранении файлов с помощью CRLF (например, файла .sln).
Согласованные окончания строк - это не то же самое, что окончания строк LF. Они могут быть последовательно CRLF.
«Согласованные окончания строк при загрузке» могут помочь с существующими файлами, но VS по-прежнему, похоже, хочет сохранять новые файлы с (согласованными) окончаниями CR-LF.
Вам не нужно устанавливать какие-либо плагины.
Как уже упоминалось, здесь, вы можете настроить окончания строк в File -> Advanced Save options....
Что?! Вы имеете в виду, что я должен делать это для каждого файла ?! Вы же не считаете это ответом?
В VS 2008 этот параметр теряется при закрытии и повторном открытии VS, даже если вы снова откроете то же решение.
Основываясь на вопросе OP, я не думаю, что это решение, которое они ищут.
Для VS есть плагин под названием Strip'Em, в котором вы можете выбрать, в какой тип новой линии вы хотите автоматически преобразовать все окончания строк при сохранении.
(Вы можете выбирать между LF, CRLF, CR.)
Это точный ответ, который @grebulon дал 6+ лет назад.
Кажется, я случайно нашел метод и нашел в этой статье попытку его исправить (мне нужен Windows CRLF EOL)! Выполнение следующих результатов в окончании строк UNIX (только LF) для меня.
SaveFileDialog^ dialog = gcnew SaveFileDialog();
System::Windows::Forms::DialogResult DR;
dialog->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
dialog->FilterIndex = 2;
dialog->RestoreDirectory = true;
dialog->DefaultExt = "txt";
DR = dialog->ShowDialog(this);
if ( DR == System::Windows::Forms::DialogResult::OK )
{
// Get the page (tab) we are currently on
System::Windows::Forms::TabPage ^selPage = this->tabControl1->SelectedTab;
// Note: technically the correct way to look for our control is to use Find and search by name
// System::Windows::Forms::RichTextBox ^selText = selPage->Controls->Find("rtb", false);
// I only add one control (rich text) so first control ([0]) must be it
System::Windows::Forms::RichTextBox ^selText = safe_cast<System::Windows::Forms::RichTextBox^>(selPage->Controls[0]);
// Just let a Windows forms method do all the work
File::WriteAllText(dialog->FileName, selText->Text);
}
Куда должен идти этот код? Предлагает то, что могло бы быть решением, но как его применить, опущено.
Ну, он будет куда-нибудь, где вы вызовете SaveFileDialog. В Visual Studio вы обычно используете генератор форм, например, для создания кнопки. Это приведет к добавлению скелета обработчика, и функция будет называться примерно так: private: System :: Void saveAsToolStripMenuItem_Click (System :: Object ^ sender, System :: EventArgs ^ e)
Спасибо, @trindflo, это мне очень помогает!
Неужели нет более простого пути? Вам нужно написать свой собственный консольный инструмент, добавить его в меню пользовательских инструментов и VBScript для перехвата после сохранения, который захватывает жестко запрограммированный индекс из меню инструментов, который, надеюсь, соответствует вашему инструменту, чтобы вызвать его? Это безумие.