
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.