Я хочу , чтобы просмотреть (и / или редактирования) Раскрашенная текста в Emacs, таких как выводится ls -l --color=always
, tree...
или любой другой .
Текст, на который я ссылаюсь, существует в файле. Когда я открываю этот файл в emacs, я хочу видеть его раскрашенным или переключать его для отображения escape-последовательностей ANSI (SGR).
ansi-color.el
Похоже, это то, что мне нужно, но я не смог заставить его делать какие-либо раскраски escape- последовательностей ANSi , но я вижу выделенный синим цветом для отдельных контрольных байтов (например, ^A
и ^[
) ... Я не конечно, если это особенность ansi-color
, но я думаю, что это так.
Согласно комментариям ansi-color.el , он может работать со строками и областями, но даже это не похоже на работу. Например, функция ansi-color-apply-on-region
не распознается M-x
. Он говорит: «Нет матча»
Я добавил (require 'ansi-color)
в мой файл .emacs и даже (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
. Я не получаю ошибок или предупреждений при запуске emacs, поэтому я застрял.
Как заставить стандартные функции работать, и можно ли сделать так, чтобы они автоматически применялись при открытии файла, к имени которого добавляется суффикс .col
?
Следующее решение позволяет читать (а не сохранять) файлы, содержащие цветовые последовательности ANSI. Имена файлов должны иметь
.txt
расширение.Поместите библиотеку терминальную-формат в
~/.emacs.d/site-lisp/
, затем добавьте эти строки в~/.emacs
файл инициализации.источник
ansi-color
и делает еще один шаг вперед, как говорится в вашей ссылке: «... Цель tty-format.el - просто сделать * такие файлы видимыми." * .. " такими файлами " являются те, которые содержат escape ANSI SGR последовательности и возврат ... Спасибо ..tty-format
. Похоже, что он превосходит мою функцию-обертку или 3-строчный производный режим. :) Emacs с трудом справляется с множеством оверлеев, поэтому ANS-Color выполняет раскрашивание. Здесь есть возможность для дальнейшей оптимизации, потому что нам не нужно раскрашивать весь буфер, только отображаемую часть.Большое спасибо @enzotib за ваше решение!
В качестве дополнения к вашему решению, вот способ сделать его явно вызываемым для пользователя:
и автоматически для файлов, отличных от * .txt или README:
Таким образом, вы можете заменить свои escape-последовательности цветами без изменения исходного файла, в отличие от решений, использующих
ansi-color-apply-on-region
.источник