Не отображать символы ^ M с emacs - PullRequest
11 голосов
/ 16 июня 2010

Мне интересно, есть ли способ временно не отображать символы ^ M в файле. Я не хочу их удалять, я просто хочу их не отображать.

Приветствия

Ответы [ 3 ]

12 голосов
/ 16 июня 2010

Я использую следующую функцию (забыл, где я ее нашел):

(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 []))
7 голосов
/ 23 декабря 2012

Документация GNU Emacs описывает, как обрабатывать кодирование текста с использованием 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 без фактического изменения файла.

0 голосов
/ 16 июня 2010

По крайней мере, в emacs 22.3 это кажется проблемой, только если ваш файл имеет комбинацию стилей новой строки, скажем, от редактирования с помощью «непросветленного» редактора под обоими окнами Unix.

Если строки последовательно заканчиваются w / ^ M, современные emacs заметят внизу, что это режим [dos], и не показывают ^ M.Затем он достаточно умен, чтобы поместить ^ M в файл при сохранении.

Если у вас есть какая-то странная комбинация, вы можете попробовать запустить

$ unix2dos FILE

, чтобы перейти в хорошее состояние, после чего, надеюсь, вы сможете сохранить ее в режиме DOS.

Замечу, что у моего xemacs 21.4 этой функции нет, увы.

Здесь есть обсуждение: http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/676113e90825d4e7

...