如何在Visual Studio(Express)2008中强制使用unix(LF)行结尾?

时间:2008-09-05 03:58:33

标签: visual-studio visual-studio-2008 formatting editor line-endings

有没有办法让总是在Visual Studio中有LF行结尾?我似乎无法找到它!

8 个答案:

答案 0 :(得分:72)

Visual Studio 2008有一个加载项,用于在保存文件时转换行结束格式。您可以在此处下载:http://grebulon.com/software/stripem.php

答案 1 :(得分:7)

希望本文能为您提供帮助:

How To Save a File from Visual C++ in UNIX Format

不幸的是,它似乎是默认情况下以Unix格式保存文件的唯一方法。

我个人在“保存文件”对话框中使用“高级保存”选项。但是要成为hones,我从来不需要使用MSVS中的大量Unix格式文件。

答案 2 :(得分:7)

您不必安装任何插件。 如上所述[{3}},您可以在File -> Advanced Save options...

中配置行结尾

答案 3 :(得分:4)

是的,至少在Visual Studio 2010专业版中,有一种方法可以始终使用LF行结尾。

转到Tools | Options... | Environment | Documents

然后启用检查加载时的一致行结尾选项。

它对我有用。

答案 4 :(得分:1)

解决方案关闭后,Visual Studio 2008不会保留高级保存选项。我愿意手动编辑很多文件,如果这样可以使它一致地工作,但我不愿意每次打开VS时都改变所有设置。

这太糟糕了。由于VS确实支持将行结尾强制为后端所需的任何内容,因此它只是没有在UI中正确连接。也许微软会解决这个不是服务包的问题。

答案 5 :(得分:0)

有一个名为Strip'Em的VS插件,您可以选择在保存时自动将所有行结尾转换为哪种新行类型。

(您可以选择LF,CRLF,CR。)

答案 6 :(得分:0)

我似乎偶然发现了一种方法并发现本文试图纠正它(我想要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);
}

答案 7 :(得分:-1)

工具/选项/文本编辑器/ C#/ IntelliSense 将“输入密钥行为:”更改为“始终在输入时添加新行”