不要使用emacs显示^ M个字符

时间:2010-06-15 20:49:48

标签: windows unix emacs character-encoding newline

我想知道是否有办法暂时不在文件中显示^ M个字符。我不想删除它们,我只是想不显示它们。

干杯,

3 个答案:

答案 0 :(得分:12)

我使用以下功能(忘记我找到的地方):

(defun hide-ctrl-M ()
  "Hides the disturbing '^M' showing up in files containing mixed UNIX and DOS line endings."
  (interactive)
  (setq buffer-display-table (make-display-table))
  (aset buffer-display-table ?\^M []))

答案 1 :(得分:7)

GNU Emacs documentation介绍了如何使用revert-buffer-with-coding-system处理文本编码:

C-x <RET> r coding <RET>
Revisit the current file using the coding system coding (revert-buffer-with-coding-system).

如果未自动检测到正确的系统编码,您可以输入:

C-x RET r dos RET

以避免在未实际修改文件的情况下显示^M字符。

答案 2 :(得分:0)

至少对于emacs 22.3,这似乎只是一个问题,如果你的文件有新行样式的组合,比如在两个windows unix下使用“非开明”编辑器进行编辑。

如果线条始终被终止,则现代emacs将在底部注明它是[dos]模式而不显示^ M.然后智能足以在保存时将^ M放在文件中。

如果你有一些奇怪的组合你可以尝试运行

$ unix2dos FILE

达到一个良好的状态,希望你可以保持它在DOS模式。

我注意到我的xemacs 21.4没有此功能,唉。

这里有一个讨论: http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/676113e90825d4e7