这些是什么^ M的是守显示在我的文件在Emacs?
题
所以,我认为它可能对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
^M
是0x0d
,即回车符。如果您的显示器看起来像
line 1^M line 2^M
,则文件必须有来自Windows,因为在Windows的标准行序列是CR
LF
(0x0d 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的尖端隐藏-回车合差异/
而不是查询代替你也可以使用 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]
如果你没有在系统上安装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
将消失。