我该如何从崇高文字3的文件中删除^ M?


22

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

^ M线尾

在提交更改之前,我想用Unix行尾替换它们。

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

谢谢你的帮助。

编辑:

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

Answers:


15

可以通过顶部的菜单或通过状态栏来安装插件而无需插件(但需要启用该功能)。

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

要通过状态栏启用此功能,请执行以下操作:单击首选项->设置,然后在右侧括号"show_line_endings": true,之间的某个位置添加内容{}。最后,保存您的更改。

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

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


当您将文件从Windows传输到服务器时,这特别有用,因为在服务器中很难编辑文件。谢谢
路易斯·卡布雷拉·贝尼托

现在这应该是公认的答案
lucas

14

您可以dos2unix在linux中使用命令(软件包dos2unix),也可以在菜单项“ 视图/行尾”下的“崇高文本”中更改行尾。


8

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

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

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

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

3

我找到了一个崇高的文本插件,可以将所有打开文件中的行尾转换为Unix / Windows / Mac OS 9。

安装

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

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

用法

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

存储库已删除?
AnnanFay

3

对于可能不想安装其他插件来删除^ M个新行的用户,

  1. 在高级文本设置中,添加"trim_trailing_white_space_on_save": true,到保存时自动删除空间。(此步骤可能是可选的)

  2. 在要打开的文件上,单击崇高文本的右下角。更改WindowsUnix并保存。

  1. ^ M不见了。请享用。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.