Подсветка синтаксиса в 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

Другие вопросы по тегам