Подсветка синтаксиса в Emacs Python-режиме - PullRequest
7 голосов
/ 08 марта 2011

У меня 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 ]

2 голосов
/ 11 апреля 2012

Для меня запуск emacs -nw изнутри byobu с TERM=xterm дал правильные цвета для подсветки синтаксиса (комментарии в python и bash все красные, а не только #) и функциональные клавиши работают.Заметьте, я установил TERM как часть псевдонима для запуска emacs, а не устанавливал его обычно в .bashrc:

alias emacs='TERM=xterm; emacs -nw'

Смотрите также этот пост: Terminal emacs colorsработать только с TERM = xterm-256color

2 голосов
/ 13 марта 2011

У меня не установлены программы, которые вы используете для тестирования, но я заметил некоторые различия в том, как функциональные клавиши определены между screen-bce и xterm-color.Вы можете попробовать выполнить следующие шаги, чтобы скопировать настройки из screen-bce в xterm-color.

Используя программу infocmp, вы можете просмотреть различия между настройками terminfo для двух настроек TERM:

infocmp -d screen-bce xterm-color

Вы можете использовать infocmp для декомпиляции файла terminfo к его источнику и внести в него изменения, чтобы попытаться имитировать поведение другого терминала.Начните с декодирования xterm-color terminfo file.

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 должно сделать это за вас.

Удачи!

1 голос
/ 14 июня 2014

Я только что добавил

(set-face-foreground 'font-lock-comment-face "red")

на мой .emacs

...