所以,我认为它可能对TextMate做,但我们在一个小团队工作,并正与Git中的几乎相同的文件完整文件冲突的一些问题,因为一个分支的每一行都有一个^ M追加到它

什么是应该做的这个神秘人物^M,何难道是哪里来的?

我们的开发人员使用emacs在Windows / Mac上,TextMate的Mac上,尾波在Mac上,偶尔可湿性粉剂管理员的文本编辑器。

任何人曾经有此问题的其中之一而产生?

有帮助吗?

解决方案

有人没有被正确转换它们的行结束字符的。

我想这是Windows的民俗,因为他们爱他们的CRLF。 Unix的爱LF和Mac喜爱CR直到它被示出了Unix方式。

其他提示

GIT-配置时,设置到core.autocrlf true使GIT中自动正确转换行结束您的平台,如用于全局设置运行此命令:

git config --global core.autocrlf true

^M0x0d,即回车符。如果您的显示器看起来像

line 1^M
line 2^M

,则文件必须有来自Windows,因为在Windows的标准行序列是CR LF0x0d 0x0a),而标准换行符序列由仅<=>上Unix系统。

如果该文件已经到来从Mac OS 9或更早版本的系统,你会看到它作为

line 1^Mline 2^M

,因为将没有换行符以下回车

要使GIT中的^ M消失,类型:

git config --global core.whitespace cr-at-eol

现金: https://开头lostechies。 COM / keithdahlby / 2011/04/06 /窗口-git的尖端隐藏-回车合差异/

他们与DOS风格的行结束符和Unix风格之间的区别做。查看维基百科文章。您可能能够找到一个DOS2UNIX的工具来帮助,或者干脆写一个小的脚本,自己解决这些问题。

修改:我发现下面的Python示例代码此处

string.replace( str, '\r', '' )

而不是查询代替你也可以使用 M-X删除尾随空白

锅在~/.emacs(或eqiuvalent)以下

(defun dos2unix ()
  "Replace DOS eolns CR LF with Unix eolns CR"
  (interactive)
    (goto-char (point-min))
      (while (search-forward "\r" nil t) (replace-match "")))

和,那么你将能够简单地使用M-x dos2unix

^M在在Emacs线的端部被指示回车(\ r)的后跟一个换行(\ n)的。你会经常看到这一点,如果一个人编辑在Windows(其中线的到底是回车和换行字符组合)文件和你在Unix或Linux(其中行结束仅仅是一个换行符)编辑。

字符的组合通常是无害的。如果您使用源代码控制,则可以配置文本文件签格式,使行奇迹般地调整为要。或者,你可以使用签入和签出触发器,它会自动“修复”的文件给你。或者,你可能只是使用工具如 DOS2UNIX的手动调整的事情。

我使用的 Android的工作室(JetBrains公司的IntelliJ IDEA )上的的Mac OS ,然后我的问题是,^ M开始露面一些文件在我的拉动请求对的GitHub 。 什么工作对我来说是改变行分隔符的文件。

打开所需的文件中的编辑文件订单分离器,然后 选择的最佳选项,供您 (对我来说是的 LF - Unix和OS X(\ n)的

按照下一个物品这个问题是操作系统之间混淆行结尾的结果: http://jonathonstaff.com/blog/issues-with-line-endings/

和更多信息,你可以在这里找到: https://www.jetbrains.com/help/idea/配置线-separators.html#d84378e48

“在这里输入的图像描述”

因为每个人都有提及。这是不同的行结束样式。 MacOSX的使用Unix行结尾 - 即LF(换行)

Windows使用两个CR(回车)LF(换行)作为结束的行。 由于您使用的Windows和那里的问题源于MAC多数民众赞成。

如果您在Windows中创建文件,然后在该行的末尾把它到你可能会看到这些的MAC ^ M字符。

如果您要删除他们,你可以在Emacs中做到这一点很容易。只需突出显示并复制^ M的性格和做一个查询替换^ M和you'e完成。

编辑: 其他一些链接,可能会有所帮助。 http://xahlee.org/emacs/emacs_adv_tips.html

这一个帮助您配置emacs的使用特定类型的行结束样式。 http://www.emacswiki.org/emacs/EndOfLineTips

我就遇到了这个问题,而回。该^ M表示回车,并在Ctrl-Q Ctrl-M搜索(这将创建一个文本^ M)将让你获得一个句柄,在Emacs这个角色。我做这些方针的东西:

M-x replace-string [ENTER] C-q C-m [ENTER] \n [ENTER]

参见:

隐藏^ M中的emacs

要小心,如果你选择删除^ M字符,并重新提交给你的团队。他们可能会看到一个文件,而不回车之后。

如果你没有在系统上安装DOS2UNIX的工具,你可以创建自己摆脱的Windows底线字符:

vi ~/dos2unix.bash:

使用以下内容

#!/bin/bash
tr -d '\r' < $1 > repl.tmp
mv -f repl.tmp $1

在您的〜/ .bashrc,添加行:

alias 'dos2unix=~/dos2unix.bash'

应用

dos2unix file_from_PC.txt

将在线路除去^ M字符file_from_PC.txt结束。您可以检查是否有使用这些猫或不:

cat -v file_from_PC.txt

对于我的解决方案是使用本 Emacs的维基文章发现了以下的elisp函数

 (defun dos2unix ()
      "Not exactly but it's easier to remember"
      (interactive)
      (set-buffer-file-coding-system 'unix 't) )

执行功能M-x dos2unix在缓冲,并保存文件,所有^M将消失。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top