Qual editor vocês pretendem usar?

6 views
Skip to first unread message

Luciano Ramalho

unread,
Jun 30, 2009, 10:30:21 PM6/30/09
to Estrutura e Interpretação de Programas de Computador
Temos o privilégio de ter aqui no grupo o Mario Goulart, mantenedor do
Chicken Scheme, o que é uma grande oportunidade para todos nós.

Eu confesso que ainda estou em dúvida entre o Chicken Scheme e o PLT-
Scheme, e a dúvida tem mais a ver com o editor a ser usado do que com
a implementação em si. Acho que além da valiosa presença do Mario, o
Chicken me parece uma implementação preocupada em ser prática e útil
para realizar tarefas reais, enquando o PLT-Scheme é mais um projeto
didático (acho que a maior parte do esforço vai no ambiente gráfico
DrScheme).

Por outro lado, eu estou confortável com o DrScheme, que é um ambiente
razoavelmente amigável. O Pedro Kröger sempre fala nas palestras dele
que para programar Lisp ou Scheme é importante usar um editor que lide
bem com a sintaxe da linguagem (não só combinando parêntesis, mas
também ajudando na endentação correta). E além do DrScheme o único
outro editor que eu sei que lida muito bem com código Lisp é o Emacs.

Mas aprender Emacs não está nos meus planos, e usar o DrScheme para
editar o Chicken Scheme acho que não é prático, porque o ambiente tem
umas amarrações não padrão (tipo, ele insere uns comentários com # no
cabeçalho do arquivo-fonte).

Agora, se eu achar um outro editor que trabalhe bem com Lisp, mas
tenha uma interface mais padrão (onde C-x corta, C-v cola, etc.) estou
inclinado a usar o Chicken Scheme.

Alguém tem outra sugestão de editor bom para Lisp além do DrScheme ou
do Emacs?

[ ]s
Luciano

Mario Domenech Goulart

unread,
Jun 30, 2009, 11:20:10 PM6/30/09
to ei...@googlegroups.com
Alô Luciano.

On Tue, 30 Jun 2009 19:30:21 -0700 (PDT) Luciano Ramalho <ram...@gmail.com> wrote:

> Agora, se eu achar um outro editor que trabalhe bem com Lisp, mas
> tenha uma interface mais padrão (onde C-x corta, C-v cola, etc.) estou
> inclinado a usar o Chicken Scheme.
>
> Alguém tem outra sugestão de editor bom para Lisp além do DrScheme ou
> do Emacs?

Insistindo ainda com o Emacs :-), há o cua-mode
(http://www.emacswiki.org/emacs/CuaMode), que provê as funcionalidades
que mencionas no parágrafo anterior.

Acho que basta colocar a seguinte expressão no teu arquivo ~/.emacs (não
testado):

(cua-mode t)

Mas se realmente quiseres distância do Emacs e se tiveres memória
sobrando na tua máquina, há o seguinte projeto:
http://schemeway.sourceforge.net/

Um abraço.
Mario

Conrado Porto Lopes Gouvêa

unread,
Jun 30, 2009, 11:23:37 PM6/30/09
to ei...@googlegroups.com
2009/6/30 Luciano Ramalho <ram...@gmail.com>:

> Alguém tem outra sugestão de editor bom para Lisp além do DrScheme ou
> do Emacs?

Como sou fã do Eclipse, dei uma procurada por um plugin. Achei o
SchemeScript [1], que parece meio abandonado mas foi lançada uma
versão ano passado para o Eclipse 3.3. Instalei, dei uma fuçada, e
parece ser bom (mas como nunca programei coisas grandes em Lisp/Scheme
talvez eu não seja o melhor a dizer...).

Ele já vem com um interpretador, o Kawa [2], mas também pode ser
configurado para usar interpretadores externos. Tem o que se espera,
matching de parênteses, identação, etc. Além disso tem vários outros
atalhos, todos configuráveis.

Dicas rápidas de uso para quem quiser usá-lo: a documentação está toda
instalada na documentação do Eclipse. Ele define uma nova perspectiva
"Scheme" mas não define um tipo de projeto novo. É só criar um projeto
"genérico" e criar arquivos com extensão .scm. Para abrir o
interpretador é F9, para avaliar a expressão anterior é Ctrl+Enter e
para a expressão top-level atual, Ctrl+Shift+Enter.


[1] http://schemeway.sourceforge.net/schemescript.html
[2] http://www.gnu.org/software/kawa/

PS: enquanto digitava o Mario indicou o SchemeScript também!

Conrado

Luciano Ramalho

unread,
Jul 1, 2009, 12:36:05 AM7/1/09
to ei...@googlegroups.com
2009/7/1 Mario Domenech Goulart <mario....@gmail.com>:

>
> Alô Luciano.
>
> On Tue, 30 Jun 2009 19:30:21 -0700 (PDT) Luciano Ramalho <ram...@gmail.com> wrote:
>
>> Agora, se eu achar um outro editor que trabalhe bem com Lisp, mas
>> tenha uma interface mais padrão (onde C-x corta, C-v cola, etc.) estou
>> inclinado a usar o Chicken Scheme.
>>
>> Alguém tem outra sugestão de editor bom para Lisp além do DrScheme ou
>> do Emacs?
>
> Insistindo ainda com o Emacs :-), há o cua-mode
> (http://www.emacswiki.org/emacs/CuaMode), que provê as funcionalidades
> que mencionas no parágrafo anterior.
>
> Acho que basta colocar a seguinte expressão no teu arquivo ~/.emacs (não
> testado):
>
> (cua-mode t)

Opa, valeu, Mario! Vou experimentar isso.

Antigamente alguém mencionou que era possível fazer o Emacs ficar mais
parecido com um editor CUA, mas eu pensei, ora, se quero um editor CUA
não faz sentido usar o Emacs... Mas agora de repente faz, por causa do
suporte ao Scheme. Vou testar.

> Mas se realmente quiseres distância do Emacs e se tiveres memória
> sobrando na tua máquina, há o seguinte projeto:
> http://schemeway.sourceforge.net/

Aí o problema é que eu quero distância do Eclipse também ;-).

[ ]s
Luciano

Luciano Ramalho

unread,
Jul 1, 2009, 12:37:11 AM7/1/09
to ei...@googlegroups.com
2009/7/1 Conrado Porto Lopes Gouvêa <conra...@gmail.com>:

Conrado, muito grato pela dica!

Eu não sou fã do Eclipse, então vou tentar a dica do Mario primeiro, OK?

Valeu!

[ ]s
Luciano

Kao Cardoso Felix

unread,
Jul 1, 2009, 3:29:10 AM7/1/09
to ei...@googlegroups.com
2009/7/1 Luciano Ramalho <ram...@gmail.com>:

> Antigamente alguém mencionou que era possível fazer o Emacs ficar mais
> parecido com um editor CUA, mas eu pensei, ora, se quero um editor CUA
> não faz sentido usar o Emacs...

Luciano, eu discordo nesse ponto.

Mesmo com a interface CUA o Emacs tem muitos atrativos. Eu aprendi a
usá-lo esse ano e não me arrependi (e continuo aprendendo, pq é o
único editor que eu usei que sempre tem algo novo para se descobrir).
Nunca vi um ambiente que fosse tão customizável com tanta facilidade.
O sistema de ajuda é mto bom e torna os inúmeros comandos descobríveis
com uma razoável facilidade, não importa a combinação de teclas que
eles tenham.

Eu poderia escrever um email gigante colocando motivos pra aprender a
usar o Emacs e certamente atalhos esotéricos para comandos comuns não
estão entre eles :) Mas como aqui não é o lugar apropriado para isso
vou deixar pra um post de blog em algum outro momento. Só deixo dito:
vale a pena tentar aprender quando tiveres o tempo e a disposição.

[]'s

--
Kao Cardoso Félix

Página pessoal: http://www.inf.ufrgs.br/~kcfelix
Blog: http://kaofelix.blogspot.com

Renato Cunha

unread,
Jul 1, 2009, 7:16:08 AM7/1/09
to ei...@googlegroups.com
2009/6/30 Luciano Ramalho <ram...@gmail.com>:

> Alguém tem outra sugestão de editor bom para Lisp além do DrScheme ou
> do Emacs?

Da última vez que desenvolvi em scheme, usei o vim e pretendo usá-lo novamente.
No entanto, ele também sofre do problema da curva de aprendizado, então pode
ser que ele não seja útil a menos que você tenha intimidade com o editor.

O Scheme mode pode ajudar na tarefa, caso alguém queira tentar,
http://www.vim.org/scripts/script.php?script_id=1918

[]'s,
--
Renato Cunha <http://renatocunha.com>
The ship of failure floats on a sea of excuses
- Portal?

Luis Henrique Fagundes

unread,
Jul 1, 2009, 7:16:42 AM7/1/09
to ei...@googlegroups.com
Eu vou usar Emacs! Inclusive porque espero que o primeiro benefício prático direto de estudar scheme seja conseguir configurar o Emacs :-).

Uso Emacs para programar há quase 11 anos, eventualmente uso vim pra coisas mais corriqueiras e Eclipse em poucos projetos. Até agora não encontrei nenhum editor tão confortável quanto Emacs para código em geral. Acho Eclipse melhor para Java e C++, e imagino que funcione bem para linguagens fortemente tipadas em geral, mas os recursos automatizados dele acabam sendo um estorvo em PHP e Perl, pois ele fica consumindo todo o processamento pra dar sugestões não tão espertas e o resultado é uma latência na digitação.

Mas como o assunto não é uma competição dos editores, pergunto: será que o Eclipse vai lidar bem com o Scheme, como faz com Java ou C++, ou vai ficar se embananando como no PHP ou Perl?

asa

2009/7/1 Kao Cardoso Felix <kcf...@gmail.com>

Luciano Ramalho

unread,
Jul 1, 2009, 7:56:24 AM7/1/09
to ei...@googlegroups.com
2009/7/1 Kao Cardoso Felix <kcf...@gmail.com>:

>
> 2009/7/1 Luciano Ramalho <ram...@gmail.com>:
>> Antigamente alguém mencionou que era possível fazer o Emacs ficar mais
>> parecido com um editor CUA, mas eu pensei, ora, se quero um editor CUA
>> não faz sentido usar o Emacs...
>
> Luciano, eu discordo nesse ponto.

Calma, Kao, você cortou a frase seguinte, na mesma linha, onde eu
dizia que ia experimentar o Emacs...

>
> Mesmo com a interface CUA o Emacs tem muitos atrativos.

É claro que eu sei disso, Kao.

Não tenho dúvida dos inúmeros benefícios de usar o Emacs. Eu já passei
um mês usando Emacs como meu único editor em 1999.

Minha questão é bem pragmática: estou em uma fase da minha vida em que
meu foco é a educação. Por isso eu não quero investir o tempo para
aprender uma ferramenta que meus alunos dificilmente vão querer usar.
Agora o Emacs com modo CUA tem uma chance de ser usável sem muito
esforço, então por isso resolvi testar.

> Eu aprendi a
> usá-lo esse ano e não me arrependi (e continuo aprendendo, pq é o
> único editor que eu usei que sempre tem algo novo para se descobrir).
> Nunca vi um ambiente que fosse tão customizável com tanta facilidade.
> O sistema de ajuda é mto bom e torna os inúmeros comandos descobríveis
> com uma razoável facilidade, não importa a combinação de teclas que
> eles tenham.
>
> Eu poderia escrever um email gigante colocando motivos pra aprender a
> usar o Emacs e certamente atalhos esotéricos para comandos comuns não
> estão entre eles :) Mas como aqui não é o lugar apropriado para isso
> vou deixar pra um post de blog em algum outro momento. Só deixo dito:
> vale a pena tentar aprender quando tiveres o tempo e a disposição.

Com certeza. Quando eu tiver o tempo e a disposição eu pretendo
aprender chinês mandarim, também ;-).

[ ]s
Luciano

guaracy

unread,
Jul 1, 2009, 2:49:22 PM7/1/09
to Estrutura e Interpretação de Programas de Computador
> > Antigamente alguém mencionou que era possível fazer o Emacs ficar mais
> > parecido com um editor CUA, mas eu pensei, ora, se quero um editor CUA
> > não faz sentido usar o Emacs...
>
> Luciano, eu discordo nesse ponto.
>
> Mesmo com a interface CUA o Emacs tem muitos atrativos. Eu aprendi a
> usá-lo esse ano e não me arrependi (e continuo aprendendo, pq é o
> único editor que eu usei que sempre tem algo novo para se descobrir).
> Nunca vi um ambiente que fosse tão customizável com tanta facilidade.
> O sistema de ajuda é mto bom e torna os inúmeros comandos descobríveis
> com uma razoável facilidade, não importa a combinação de teclas que
> eles tenham.


Acho que devemos esclarecer uma coisinha: *O cua-mode é apenas mais
um modo do Emacs*. Faz todo o sentido usá-lo se facilitar a vida de
quem
vai utilizar o Emacs. Nem lembro em que versão que ele começou a
fazer
parte Emacs (pode ser acessado direto pelo menu).

Pessoalmente, considero o melhor editor para a tarefa. Existem os
ambientes comerciais que são bons mas tem gente que, mesmo tendo
um ambiente comercial ainda utiliza o Emacs para ser o editor.

Aprendendo uma dúzia de atalhos já é possível utilizar o Emacs sem
muito trauma. Com o tempo o usuário vai se acostumando e gostando
cada vez mais do ambiente. Eu fiz dois tutoriais há uns 3/4 anos. Não
vem ao caso a linguagem (Ruby) nem o ambiente (Windows). O que
interessa é a utilização do Emacs e a integração dele com diversas
ferramentas. Simplesmente não saí dele para editar programa, usar o
shell, utilizar navegador, acessar sgbd, etc. Pode valer pela
curiosidade.

http://photoshosting.com/?page=view&id=ff4c8028&name=wee.swf&q=high&height=560&width=763
http://photoshosting.com/?page=view&id=e8556018&name=og.swf&q=high&height=560&width=763

Guaracy Monteiro

guaracy

unread,
Jul 15, 2009, 1:33:57 AM7/15/09
to Estrutura e Interpretação de Programas de Computador
> fortemente tipadas em geral, mas os recursos automatizados dele acabam sendo
> um estorvo em PHP e Perl, pois ele fica consumindo todo o processamento pra
> dar sugestões não tão espertas e o resultado é uma latência na digitação.

Já que vais utilizar o Emacs, podes verificar o pabbev-mode (
http://homepages.cs.ncl.ac.uk/phillip.lord/download/emacs/pabbrev.el
). Ele se baseia no conteudo do buffer (ou outros) e auxilia na hora
da digitação. Vai digitando e ele vai completando a palavra (mais
utilizadas). Quando estiver correta é só dar um Tab. Outro tab e ele
mostra todas as opções no buffer.

Guaracy

guaracy

unread,
Jul 15, 2009, 1:41:11 AM7/15/09
to Estrutura e Interpretação de Programas de Computador
> Não tenho dúvida dos inúmeros benefícios de usar o Emacs. Eu já passei
> um mês usando Emacs como meu único editor em 1999.

Em 1999 eu não conhecia o Emacs. Mas acho que ele está diferente.

Pelo que senti, algumas coisinhas não ficaram muito claras no Emacs e
Cua-mode.

O texto não é uma tentativa de empurrar o Emacs goela abaixo, apenas
evitar que informações incorretas sejam passadas adiante. Cada um usa
o editor que quiser.

O Emacs 'normal' não é compatível com CUA. Nem poderia, já que ele foi
feito uns dez anos antes da padronização e, provavelmente os usuários
não se sentiram atraídos pela mudança (teriam que reaprender a
utilizar o editor). Mas isso é história. Quem instalar um Emacs hoje
vai utilizar a versão 22.3, pelo menos. O Cua-mode já vem por padrão
na distribuição. A única coisa a fazer é Clicar no menu 'Options' e na
opção 'C-x/C-c/C-v Cut and Past (CUA)'. Se desejar salvar para opções
futuras é só ir no menu 'Options', 'Save options'. Em 2004 eu
configurei um e coloquei na internet (usava praticamente só o
windows). Está em emacs-win.sf.net , é para windows mas não aconselho
baixar por ser uma versão antiga. Mas já vinha com todas as
facilidades para quem não deseja mudar muito o modo de digitar.

Não sei quando mudou ou *se* mudou, mas as especificações originais do
CUA eram Shift+Del (Cut), Ctrl+Ins (Copy) e Shift+Ins (Paste). Se não
mudou, Ctrl+x/v/c não são padrão CUA. Mas vá lá.

Ativando o Cua-mode no Emacs o comportamento é o seguinte (mesmo que o
comportamento seja sem o Cua-mode, especifico abaixo)

-Movimentação do cursor

Setas : movem o cursos
Ctr+setas : palavra próxima/anterior parágrafo proximo/anterior
Home/End : início/final da linha
Ctrl+Home/End : início/final do arquivo
PgDn/PgUp : rolam uma página acima/abaixo

-Seleção:

As teclas acima junto com Shift seleciona o texto do cursor até o
resultado, isto é, Ctrl+End seleciona do cursor até o final da linha.

A seleção pode ser feita com o mouse. Clique no botão esquerdo e
arrastar o mouse para selecionar. Duplo clique seleciona a palavra. Se
o botão continuar pressionado e o mouse for arrastado, irá
selecionando de palavra em palavra. Triplo clique seleciona a linha.
Se for arrastado irá selecionando as linhas onde o ponteiro estiver
posicionado. O botão direito do mouse seleciona da posição do cursor
até o clique. Para copiar e colar com o mouse, basta selecionar o
texto com o mouse, posicionar o ponteiro onde se deseja copiar e
pressionar o botão do meio.

-Copiar, cortar, inserir

Se houver um texto selecionado, Ctrl-x irá apenas cortar o texto
selecionado (não será reconhecida como prefixo para comandos). Da
mesma forma, Ctrl-c irá copiar o texto e Ctrl-v irá colar.

Para as três sequencias acima é possível usar Ctrl+n, onde n é um
número de 0 a 9. A operação irá ser efetuada em uma área especial. Ctrl
+1 Ctr+c copia o texto selecionado para o buffer 1. Para colar o
conteúdo do buffer 5 basta Ctrl+5 Ctrl+v.

Para selecionar todo o texto, é possível utiliza a sequencia: Ctrl
+Home, Shift+Ctrl+End. Com o tempo a gente aprende que 'mais fácil
utilizar a sequencia Ctrl+x h. :-)

- Desfazer:
Ctrl+Z para desfazer um ou mais erros cometidos.

Existem outras coisas que o Cua-mode implementa, mas acho que o
interessante eram as combinações acima, muitas já conhecidas de muitos
usuários seja do Windows seja de outros programas. Outras coisas acho
que são do Linux mesmo (botão do meio do mouse, por exemplo; não sei
se funcionam no Emacs no Windows).

O que não é implementado são os atalhos para os menus, Alt+letra
sublinhada.

Então, se alguém disser que não é possível selecionar usando as teclas
do cursor com shift ou Ctrl+x não recorta o texto, a resposta correta
é: "depende".

Se for uma versão antiga, basta procurar pelo cua-mode.el, e.........
Acho melhor instalar uma versão nova, quatro clicles para as opções do
menu e não se incomodar com o .emacs (arquivo de configuração).


Guaracy.

Renato Cunha

unread,
Jul 15, 2009, 11:11:50 PM7/15/09
to ei...@googlegroups.com
2009/7/1 Renato Cunha <ren...@gmail.com>:

> Da última vez que desenvolvi em scheme, usei o vim e pretendo usá-lo novamente.
> No entanto, ele também sofre do problema da curva de aprendizado, então pode
> ser que ele não seja útil a menos que você tenha intimidade com o editor.

Respondendo a mim mesmo, habilitei o lisp mode (:set lisp) e estou
editando em conjunto com o vimsh[1], rodando o chicken dentro de um
buffer do vim.

[1] http://www.vim.org/scripts/script.php?script_id=165

Uma página interessante que achei é a "Lisp with Vim"[2], referenciada
no wiki do chicken e escrita pelo Larry Clapp, mesmo autor do
VILisp[3], que habilita REPL no vim com o Common Lisp.

[2] http://cybertiggyr.com/gene/15-vim/
[3] http://www.vim.org/scripts/script.php?script_id=221

Achei uma dica de como fazê-lo trabalhar com o chicken[4], mas ainda
não tive tempo para brincar com isso.

[4] http://migre.me/3IKF - Infelizmente, não achei uma âncora para o
comentário sobre o chicken, então quem estiver interessado que procure
na página. ;)

[]'s


--
Renato Cunha <http://renatocunha.com>

dropline GNOME page: <http://trovao.droplinegnome.org>

Adriano Ogata

unread,
Jul 16, 2009, 7:36:07 AM7/16/09
to ei...@googlegroups.com
DrScheme e vim + chicken. :]

Og!

Gustavo Barrancos

unread,
Jul 16, 2009, 9:31:08 AM7/16/09
to ei...@googlegroups.com
Eu estou usando o Chicken Scheme & Emacs com Hen-Mode. Basta copiar o hen-mode.el (incluso com o chicken) para o seu .emacs.d e adicionar umas entradas no seu .emacs. O  README do chicken mostra como fazer :)

[]'s



2009/7/16 Adriano Ogata <ako...@gmail.com>
Reply all
Reply to author
Forward
0 new messages