有时我需要在行结尾中读取具有^ M(control-M)的日志文件.我可以做一个全局替换来摆脱它们,但随后会有更多内容记录到日志文件中,当然,它们都会回来.
设置unix样式或dos样式的行尾编码似乎没有多大区别(但unix样式是我的默认值).我正在使用未定 - (unix | dos)编码系统.
我在Windows上,读取log4net创建的日志文件(虽然log4net显然不是这种烦恼的唯一来源).
任何提示?
(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的现代版本,知道如何处理UNIX和DOS行结束,所以当^ M的文件中显示出来,这意味着有两个文件中的混合物.当存在这样的混合时,emacs默认为UNIX模式,因此^ Ms是可见的.真正的解决方法是修复程序创建文件,以便它使用一致的行结尾.
关于什么?
C-x RET c dos RET C-x C-f FILENAME RET
我制作了一个有两行的文件,第二行有一个回车符.Emacs会在Unix编码中打开文件,切换编码系统什么都不做.但是,universal-coding-system-argument
上面的工作.