[R-br] pacote colorout: agora com suporte a 256 cores e funcionando no Emacs

Fernando Mayer fernandomayer em gmail.com
Segunda Novembro 21 01:52:06 BRST 2011


2011/11/20 Jakson Alves de Aquino <jalvesaq em gmail.com>:
> 2011/11/20 Fernando Mayer <fernandomayer em gmail.com>:
>> coloquei essa linha no .Rprofile e testei. No terminal funciona bem.
>> No Emacs está acontecendo isso:
>>
>>> ls()
>>  [32mcharacter( [33m0 [32m) [0m
>
> O seguinte comando no Emacs deve resolver:
>
> M-x ansi-color-for-comint-mode-on

Fuinciona!

> Eu gostaria de saber como fazer para esse comando ser aplicado
> automaticamente. Ou seja, como colocá-lo no ~/.emacs?

Fiz uma busca e os dois comandos a seguir são necessários para ativar
o ansi-color-for-comint-mode-on
(require 'ansi-color)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)

Só um detalhe. Uso o Emacs 23.2.1. Parece que em algumas versões
antigas o suporte para ansi-color não funciona assim diretamente, e ai
é preciso baixar o arquivo ansi-color.el e colocar em um LoadPath.
Algumas informações sobre isso estão aqui:

http://www.emacswiki.org/emacs/AnsiColor
http://www.emacswiki.org/emacs/LoadPath
http://www.emacswiki.org/emacs/ansi-color.el

> Mas a ativação do colorout cria outro problema. A completação
> automática de nomes de funções com a tecla Tab para de funcionar. Pelo
> menos foi o que percebi aqui. Na verdade, não uso o Emacs, então, não
> sei quais serão as outras consequências (se houver outras). Mas
> ficarei grato se você ou outros usuários do Emacs puderem me informar
> dos problemas que forem encontrando para que eu possa tentar resolver.

Sim, a completação automática não funciona, assim como também não
funciona o modo ElDoc do ESS (que serve para mostar os argumentos de
uma função no buffer, quando vc está em um *.R) --- carrega-se com
(require 'ess-eldoc)

> Uma observação: Eu criei o pacote porque uso o R através do Vim e a
> única forma de rodar o R dentro de um buffer do Vim é problemática
> (usando o plugin Conque Shell). Com o Vim, o R roda em um terminal
> independente do editor e, por isso, o pacote colorout é realmente
> útil. O Emacs tem capacidade de colorir o output do R, o que,
> inclusive, ele já faz. Talvez exista alguma forma de configurar o ESS
> para usar cores diferenciadas para todos os elementos coloridos pelo
> colorout.

Pelo ESS acho que não é possível fazer isso, mas pelo Emacs mesmo deve ser.


[]s,

---
Fernando Mayer
Universidade Federal de Santa Catarina - UFSC
Departamento de Ecologia e Zoologia - ECZ/CCB
URL: http://sites.google.com/site/fernandomayer
e-mail: fernandomayer [@] gmail.com


Mais detalhes sobre a lista de discussão R-br