Подсветка синтаксиса в Emacs Python-режиме
У меня есть GNU Emacs 23 (пакет emacs23
) установлен на настольную машину и пакет Ubuntu 10.04 emacs23-nox
установленный на автономном сервере Ubuntu 10.04 (X не установлен). Обе установки имеют одинаковые ~/.emacs
файл. Я запускаю Emacs с -nw
на обоих компьютерах. У меня нет python-mode
установлен на любой машине, так как я понимаю, что это включено в Emacs 23.
На настольном компьютере комментарии в Python (начиная с #
) выделены красным. На сервере комментарии отображаются в виде обычного белого текста, как и любой другой неотмеченный текст. Любые предложения относительно того, почему комментарии не выделяются правильно на сервере (nox
) монтаж?
Обновление: это похоже на проблему с терминалом. я ssh
в серверную машину от terminator
через замену экрана byobu
, Если я запускаю emacs на сервере с TERM="xterm-256color" emacs
, тогда комментарии подсвечиваются, но все остальные цвета выглядят очень странно.
Обновление: добавление `export TERM="xterm-256color" " решило "это. Подсветка синтаксиса теперь имеет очень странные цвета: пурпурный и светло-коричневый. Моя зеленая полоса выделения текущей строки теперь светло-бледно-желтая / зеленая. Комментарии выделены красным, хотя:)
Обновление: решено. настройка TERM="xterm-color"
производит "правильные" цвета, включая выделение комментариев. По умолчанию сервер имеет значение "screen-bce" для TERM
который не выделял комментарии.
Обновление: не решено. byobu
обеспечивает связывание клавиш для различных функциональных клавиш, чтобы легко создавать новые сеансы экрана и переключаться между ними. когда TERM
установлен в xterm-color
эти функциональные клавиши больше не работают. Так что, думаю, мне просто нужно быть довольным невыделенными комментариями в коде Python в Emacs.
3 ответа
Для меня бег emacs -nw
изнутри byobu
с TERM=xterm
произвел правильные цвета для подсветки синтаксиса (комментарии в python и bash все красные, а не только #) и функциональные клавиши работают. Обратите внимание, я установил TERM
как часть псевдонима для запуска emacs, а не для его установки в .bashrc
:
alias emacs='TERM=xterm; emacs -nw'
Смотрите также этот пост: Терминальные цвета emacs работают только с TERM=xterm-256color.
У меня не установлены программы, которые вы используете, чтобы проверить это, но я заметил некоторые различия в том, как функциональные клавиши определены между screen-bce и xterm-color. Вы можете попробовать выполнить следующие шаги, чтобы скопировать настройки из screen-bce в xterm-color.
Используя программу infocmp, вы можете просмотреть различия между настройками terminfo для двух настроек TERM:
infocmp -d screen-bce xterm-color
Вы можете использовать infocmp для декомпиляции файла terminfo к его источнику и внесения в него изменений, чтобы попытаться имитировать поведение другого терминала. Начните с декодирования файла terminfo цвета xterm.
infocmp xterm-color > xterm-color.src
Отредактируйте xterm-color.src и измените определения полей kf1 - kf19, чтобы они соответствовали значениям screen-bce. Используйте infocmp, чтобы увидеть определения screen-bce.
infocmp screen-bce
Наконец скомпилируйте с помощью программы TIC.
tic xterm-color.src
Если вы запустите его как пользователь без полномочий root, он поместит скомпилированный файл terminfo в каталог $HOME/.terminfo. В моей системе кажется, что Ubuntu подхватывает это автоматически. Вы также можете установить его в стандартный каталог /usr/share/terminfo, когда будете довольны. Запуск tic от имени root должен сделать это для вас.
Удачи!
Я только добавил
(set-face-foreground 'font-lock-comment-face "red")
на мой.emacs