我怎样才能从 Sublime Text 3 中的文件中删除 ^M?

我怎样才能从 Sublime Text 3 中的文件中删除 ^M?

当我在我的分支中执行 git diff 时,我看到行尾有字符 ^M:

^M 行尾

我想在提交更改之前用 Unix 行尾替换这些。

我正在使用 Ubuntu 14.04、git 和 sublime text 3。

我正在寻找一种不使用其他实用程序或命令来更改 Sublime Text 3 中的行尾的方法。

答案1

这可以通过顶部的菜单或状态栏来完成,无需插件(但您需要启用该功能)。

要通过顶部菜单进行更改,请单击“查看”->“行尾”->“选择所需的行尾类型”。

要通过状态栏启用此功能:单击首选项 -> 设置,然后在右侧的括号"show_line_endings": true,之间添加。最后,保存您的更改。{}

这将启用状态栏右侧底部显示的一小部分。它会告诉您当前的 EOL 编码,单击框并选择其他类型,它会为您更改文件的 EOL 字符。

另一个有用的选项是文件编码,也可以在状态栏中启用,方法是按照上面相同的设置,但也可以在标记"show_encoding": true,之间添加{}

答案2

您可以dos2unix在 linux 中使用命令(dos2unix 包)或在菜单项下的 Sublime Text 中更改行尾视图/行尾

答案3

^M\r(Control-M,或回车)。

这可能是因为提交文件的用户使用的是 Windows,它使用\r\n作为行尾。Linux 仅使用\n,因此您会^M在行尾看到。

您可能想要执行以下操作之一:

  • “修复”文件以使其具有\n行尾(使用诸如 之类的工具dos2unix)并提交。在这种情况下,除非您能让其他用户执行以下操作,否则您将与其他用户发生争执。
  • 配置你的两个 git 安装,以便为每个环境正确处理行尾 - 例如:https://stackoverflow.com/questions/10418975/how-to-change-line-ending-settings
  • 配置 Sublime 使用'打开文件Windows 行尾

答案4

我找到了一篇精彩的文字插入将所有打开的文件中的行尾转换为 Unix/Windows/Mac OS 9。

安装

  1. 打开 Sublime,转到“首选项”>“浏览包”。这将打开一个窗口。
  2. 下载或复制此内容存储库到与您上一步中打开的 Packages/ 文件夹中的包名称完全相同的文件夹:

/home/YOUR_USERNAME/.config/sublime-text-3/Packages

用法

  1. 返回 Sublime 并打开所有要转换的文件。
  2. 打开所有文件后,按 CTRL + SHIFT + P,然后搜索并选择“Line Ending to all view: Unix”。
  3. 按 CTRL + ALT + S 保存所有打开的文件。

相关内容