pacote colorout: agora com suporte a 256 cores e funcionando no Emacs

Olá, Recebi muitos comentários úteis quando anunciei aqui o pacote colorout que estou desenvolvendo. Por isso, resolvi anunciar a versão atual. Ontem enviei o pacote para o CRAN, mas ele ainda não foi avaliado. Enquanto esperava, continuei trabalhando e adicionei suporte a 256 cores. Num rápido teste que fiz, o colorimento do output do R está funcionando no buffer do Emacs (mas com apenas 16 cores). Para maiores detalhes: ?ColorOut Se puderem testar, eis o link para a versão atual: http://www.lepem.ufc.br/jaa/colorout_0.9-1.tar.gz Obrigado, -- Jakson

Prezado Jakson, testei aqui e funcionou sem nenhum problema! No meu .Rprofile deixei só a linha library(colorout) agora e não deu mais nem os avisos que davam antes. A única coisa que não entendi que vc falou é do colorimento do output do R no buffer do Emacs. Ali não vi diferença em relação a como sempre foi (o buffer sempre foi preto e branco). Será que to confundindo alguma coisa? Valeu. []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 2011/11/20 Jakson Alves de Aquino <jalvesaq@gmail.com>:
Olá,
Recebi muitos comentários úteis quando anunciei aqui o pacote colorout que estou desenvolvendo. Por isso, resolvi anunciar a versão atual.
Ontem enviei o pacote para o CRAN, mas ele ainda não foi avaliado. Enquanto esperava, continuei trabalhando e adicionei suporte a 256 cores. Num rápido teste que fiz, o colorimento do output do R está funcionando no buffer do Emacs (mas com apenas 16 cores). Para maiores detalhes:
?ColorOut
Se puderem testar, eis o link para a versão atual:
http://www.lepem.ufc.br/jaa/colorout_0.9-1.tar.gz
Obrigado,
-- Jakson _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

2011/11/20 Fernando Mayer <fernandomayer@gmail.com>:
testei aqui e funcionou sem nenhum problema! No meu .Rprofile deixei só a linha library(colorout) agora e não deu mais nem os avisos que davam antes.
O pacote agora carrega as funções escritas em R e a biblioteca colorout.so, mas a função escrita em C, da biblioteca colorout.so, não é chamada se a variável de ambiente "TERM" == "dumb". Quem estava causando problema era a função ColorOut(), mas ela não está mais sendo chamada no Emacs. E isso ocorre silenciosamente no carregamento do pacote. Talvez eu deva acrescentar algum aviso de que a funcionalidade do pacote está desativada... Vou fazer isso.
A única coisa que não entendi que vc falou é do colorimento do output do R no buffer do Emacs. Ali não vi diferença em relação a como sempre foi (o buffer sempre foi preto e branco). Será que to confundindo alguma coisa?
Para a função ColorOut() ser chamada automaticamente, é preciso colocar o seguinte no .Rprofile: options(colorout.dumb = TRUE) library(colorout) -- Jakson Alves de Aquino Universidade Federal do Ceará www.lepem.ufc.br/aquino.php

Jakson, coloquei essa linha no .Rprofile e testei. No terminal funciona bem. No Emacs está acontecendo isso:
ls() [32mcharacter([33m0[32m)[0m x <- rnorm(10) x [32m [[33m1[32m][0m[32m [33m-0.5951950[32m[0m[32m [33m-0.9922509[32m[0m[32m [33m0.1251772[32m[0m[32m [33m2.0350707[32m[0m[32m [33m-0.4472025[32m[0m[32m [33m0.8692406[32m[0m[32m[0m [32m [[33m7[32m][0m[32m [33m0.5454161[32m[0m[32m [33m0.8916269[32m[0m[32m [33m-1.4137384[32m[0m[32m [33m0.5409110[32m[0m[32m[0m
[]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 2011/11/20 Jakson Alves de Aquino <jalvesaq@gmail.com>:
2011/11/20 Fernando Mayer <fernandomayer@gmail.com>:
testei aqui e funcionou sem nenhum problema! No meu .Rprofile deixei só a linha library(colorout) agora e não deu mais nem os avisos que davam antes.
O pacote agora carrega as funções escritas em R e a biblioteca colorout.so, mas a função escrita em C, da biblioteca colorout.so, não é chamada se a variável de ambiente "TERM" == "dumb". Quem estava causando problema era a função ColorOut(), mas ela não está mais sendo chamada no Emacs. E isso ocorre silenciosamente no carregamento do pacote. Talvez eu deva acrescentar algum aviso de que a funcionalidade do pacote está desativada... Vou fazer isso.
A única coisa que não entendi que vc falou é do colorimento do output do R no buffer do Emacs. Ali não vi diferença em relação a como sempre foi (o buffer sempre foi preto e branco). Será que to confundindo alguma coisa?
Para a função ColorOut() ser chamada automaticamente, é preciso colocar o seguinte no .Rprofile:
options(colorout.dumb = TRUE) library(colorout)
-- Jakson Alves de Aquino Universidade Federal do Ceará www.lepem.ufc.br/aquino.php _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

2011/11/20 Fernando Mayer <fernandomayer@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 Eu gostaria de saber como fazer para esse comando ser aplicado automaticamente. Ou seja, como colocá-lo no ~/.emacs? 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. 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. No colorout, os elementos são: Texto enviado para stdout, com realce específico para strings, números e palavras-chave. Texto enviado para stderr, com realce diferenciado para de avisos, erros e demais mensagens. O ESS somente realça strings e palavras-chave (NULL, NA, TRUE, FALSE etc.). -- Jakson Alves de Aquino Universidade Federal do Ceará www.lepem.ufc.br/aquino.php

2011/11/20 Jakson Alves de Aquino <jalvesaq@gmail.com>:
2011/11/20 Fernando Mayer <fernandomayer@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

Boa noite Pessoal, aproveitando o gancho levantado pelo Fernando, o EMACS permite customizar alguns elementos, tanto do output do R, quanto do próprio editor de scripts. Abaixo segue algumas das modificações que consegui observar: Setando no arquivo .emacs os seguintes comandos, podemos ter as mudanças conforme expostos nos comentários acima de cada função. ;; muda a cor do fundo para preto (set-background-color "black") ;; muda a cor da fonte para branco (set-foreground-color "white") ;; muda a cor da fonte dos comentários (set-face-foreground 'font-lock-comment-face "green") ;; muda a cor dos caracteres entre strings (set-face-foreground 'font-lock-string-face "DodgerBlue") ;; muda a cor de textos constantes. exemplo: library(), simbolo de atribuição "<-", entre outros (set-face-foreground 'font-lock-constant-face "Chartreuse1") Outra forma ainda, seria instalar a lib emacs-goodies-el, que traz um universo de themes para customização do EMACS. Uma vez feito o download da mesma, para selecionar o theme desejado, basta apenas usar o comando a seguir: M x colot-theme-select ou ainda setar no arquivo .emacs o tema desejado para torná-lo padrão (require 'color-theme) (setq color-theme-is-global t) (color-theme-"nome_do_tema") Estas customizações atuam, tanto no editor do emacs, quanto no buffer onde se encontra rodando o R, Latex, entre outros. Abs. _______________ Rodrigo Sant'Ana Oceanógrafo Em 21 de novembro de 2011 01:52, Fernando Mayer <fernandomayer@gmail.com> escreveu:
2011/11/20 Jakson Alves de Aquino <jalvesaq@gmail.com>:
2011/11/20 Fernando Mayer <fernandomayer@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 _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

2011/11/21 Fernando Mayer <fernandomayer@gmail.com>:
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)
Obrigado! Coloquei na documentação do pacote. Acrescentei a opção 'colorout.emacs' com o mesmo propósito de 'colorout.dumb' porque talvez outros terminais também se identifiquem como 'dumb'. Outra alteração é que agora em strings como Q75 os números não são coloridos como números, mas como texto normal.
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.
Esse detalhe não coloquei porque a documentação cujos links você indicou foi atualizada pela última vez em 2008. Suponho que quase todos já estarão com versões suficientemente recente do Emacs. A versão atual do pacote está em: http://www.lepem.ufc/jaa/colorout_0.9-2.tar.gz -- Jakson Alves de Aquino Universidade Federal do Ceará www.lepem.ufc.br/aquino.php

Corrigindo: O endereço é http://www.lepem.ufc.br/jaa/colorout_0.9-2.tar.gz 2011/11/21 Jakson Alves de Aquino <jalvesaq@gmail.com>:
2011/11/21 Fernando Mayer <fernandomayer@gmail.com>:
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)
Obrigado! Coloquei na documentação do pacote.
Acrescentei a opção 'colorout.emacs' com o mesmo propósito de 'colorout.dumb' porque talvez outros terminais também se identifiquem como 'dumb'.
Outra alteração é que agora em strings como Q75 os números não são coloridos como números, mas como texto normal.
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.
Esse detalhe não coloquei porque a documentação cujos links você indicou foi atualizada pela última vez em 2008. Suponho que quase todos já estarão com versões suficientemente recente do Emacs.
A versão atual do pacote está em:
http://www.lepem.ufc/jaa/colorout_0.9-2.tar.gz
-- Jakson Alves de Aquino Universidade Federal do Ceará www.lepem.ufc.br/aquino.php
participantes (3)
-
Fernando Mayer
-
Jakson Alves de Aquino
-
Rodrigo Sant'Ana