有时我需要读取行结尾为^M (control-M)的日志文件。我可以做一个全局替换来消除它们,但是更多的东西会记录到日志文件中,当然,它们都会回来。
设置unix风格或dos风格的行尾编码似乎没有太大区别(但unix风格是我的默认设置)。我使用的是未决定的-(unix|dos)编码系统。
我在windows上阅读log4net创建的日志文件(尽管log4net显然不是这种烦恼的唯一来源)。
有什么提示吗?
发布于 2009-04-15 09:33:34
(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 []))作者声明: Solution by Johan Bockgrd.我发现它是here。
发布于 2009-04-09 07:00:26
现代版本的emacs知道如何同时处理UNIX和DOS行结尾,所以当^M出现在文件中时,这意味着文件中混合了这两种情况。当存在这样的混合时,emacs默认为UNIX模式,因此^Ms是可见的。真正的修复方法是修复创建文件的程序,使其使用一致的行尾。
发布于 2009-04-08 17:43:37
关于?
C-x RET c dos RET C-x C-f FILENAME RET我制作了一个有两行的文件,第二行有一个回车符。Emacs会以Unix编码打开文件,而切换编码系统则不做任何事情。但是,上面的universal-coding-system-argument可以正常工作。
https://stackoverflow.com/questions/730751
复制相似问题