Alterar o destaque da sintaxe sem alterar o modo principal?

7

Eu quero iniciar um python-shell M-x python-shell. Se não estou satisfeito com o destaque da sintaxe, é possível melhorá-lo (coloque mais cores no buffer) sem alterar o modo principal? No vim, isso seria simples set filetype=python.

A sintaxe python em si não é destacada no modo python-shell, quero que seja destacada.

Uma solução simples será favorecida, porque eu estou apenas aprendendo sobre o emacs.

Joelmob
fonte
5
Não está claro o que você está perguntando. O que "marca-texto"? Se você está perguntando se pode alterar font-lock-keywordspara um determinado modo, então sim. Mas, dependendo de como a função mode é definida, a reinserção no modo pode realçar novamente usando o modo definido font-lock-keywordse não o que você redefiniu. Para ser mais seguro nisso (mas sem garantia), você precisaria redefinir font-lock-keywordso gancho de modo, para que ele entre em vigor toda vez que o modo for ativado e depois que o código do modo for executado.
Tirou
11
Esclarecendo: você deseja desativar o realce de sintaxe, não gosta das opções de cores padrão ("face") e deseja alterá-las ou deseja adicionar um novo realce sobre o realce existente? Como o @Drew sugeriu, isso envolverá font-lock-keywordsde alguma forma, dependendo do que você deseja fazer.
Dan
@ Drew eu quis dizer o marcador de sintaxe. @ No atual modo python-shell (no emacs23) não corta a sintaxe do python, então eu quero adicionar cores.
Joelmob
@ Malabarba deve ser corrigido agora.
Joelmob 17/10/2014
3
Você não pode mudar para um mais novo python.el? O IIRC, o enviado desde o emacs 24.2, também tinha bloqueio de fonte para o shell.
Vamsi #

Respostas:

4

Todo modo principal que suporta bloqueio de fonte faz isso via font-lock-defaults. Se você marcar python-mode, verá o seguinte:

(set (make-local-variable 'font-lock-defaults)
     '(python-font-lock-keywords nil nil nil nil))

Se você estiver em um modo principal diferente, poderá configurar font-lock-defaultsde (python-font-lock-keywords nil nil nil nil)forma interativa usando M-:ou através de um gancho.

Alex Schröder
fonte