当前位置:  开发笔记 > 开发工具 > 正文

在emacs中隐藏^ M.

如何解决《在emacs中隐藏^M.》经验,为你挑选了3个好方法。

有时我需要在行结尾中读取具有^ M(control-M)的日志文件.我可以做一个全局替换来摆脱它们,但随后会有更多内容记录到日志文件中,当然,它们都会回来.

设置unix样式或dos样式的行尾编码似乎没有多大区别(但unix样式是我的默认值).我正在使用未定 - (unix | dos)编码系统.

我在Windows上,读取log4net创建的日志文件(虽然log4net显然不是这种烦恼的唯一来源).

任何提示?



1> binOr..:
(defun remove-dos-eol ()
  "Do not show ^M in files containing mixed UNIX and DOS line endings."
  (interactive)
  (setq buffer-display-table (make-display-table))
  (aset buffer-display-table ?\^M []))

JohanBockgård的解决方案.我在这里找到了.


如果你想要运行这个函数几乎总是将以下内容添加到`.emacs`(花了一些时间来查找):`(add-hook'text-mode-hook'remove-dos-eol)`

2> Edric..:

Emacs的现代版本,知道如何处理UNIX和DOS行结束,所以当^ M的文件中显示出来,这意味着有两个文件中的混合物.当存在这样的混合时,emacs默认为UNIX模式,因此^ Ms是可见的.真正的解决方法是修复程序创建文件,以便它使用一致的行结尾.


Emacs错了.真正的解决方法是修复Emacs.例如,git创建的冲突文件在'control'行中没有^ M s(例如以<<<<<<开头的行).git忽略文件结尾的任何行是完全有效的,因为控制行是'meta'.

3> ashawley..:

关于什么?

C-x RET c dos RET C-x C-f FILENAME RET

我制作了一个有两行的文件,第二行有一个回车符.Emacs会在Unix编码中打开文件,切换编码系统什么都不做.但是,universal-coding-system-argument上面的工作.


对已经打​​开的文件略微修改:`Cx RET c dos RET Mx revert-buffer RET`
推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有