Arquivos históricos do BR-Linux.org apresenta:

Usando o nedit

Alexandre Erwin Ittner (aittner@netuno.com.br) escreveu: "Sei que a escolha de um editor de texto é meio complicada para os recém-chegados do Windows e me surpreendi que muitas pessoas não conhecem o NEdit, um editor que concilia poder e simplicidade de uso. Escrevi um pequeno resumo das principais características dele e algumas dicas sobre como configurar indentação automática e a roda do mouse."

Vaje o texto dele abaixo!

Nedit

por Alexandre Erwin Ittner (aittner@netuno.com.br)

NEdit é um editor de texto genérico, com ênfase ao uso em programação, que suporta uma série de recursos altamente produtivos para programadores. O editor roda em ambiente X, o que fornece um ganho adicional de produtividade. ambém o recomendo para aqueles que estão migrando do ambiente Windows, pois é extremamente amigável ao primeiro contato.

O download pode ser feiro em http://www.nedit.org. O site também possui uma documentação bastante detalhada do editor. Por padrão, o editor usa a biblioteca Motif, mas também é compatível com a Lesstif. Pessoalmente, recomendo o uso do pacote RPM estático, que não possui dependências com as bibliotecas, e cuja instalação é extremamente simples.

A seguir, estarei listando uma série de características mais marcantes da versão 5.3 (a mais atual no momento que este artigo é escrito).

Interface - Todos os comandos do editor são acessíveis tanto pelo teclado quanto pelo mouse. Isto concilia a facilidade de uso pelo mouse para iniciantes e a produtividade com o teclado para os mais experientes.

Recursos de edição - Todos aqueles recursos desejáveis para a edição rápida de textos estão disponíveis: coisas como busca e substituição (incluindo busca incremental e suporte a expressões regulares), conversão de caixa, quebras automáticas de linhas em posições configuráveis, undos e redos ilimitados, etc.

Syntax highlight - Programadores sabem o quanto este recurso ajuda a identificar elementos sintáticos em diversas linguagens de programação. O NEdit já vem com padrões de reconhecimento para C, C++, Java, JavaScript, Ada, Fortran, Pascal, Lex, Yacc, Perl, Python, Tcl, Awk, sh/csh/bash script, HTML, LaTeX, Postscript, Makefiles, SQL, Matlab, entre outras. Também é possível criar padrões para outras linguagens, bastando conhecer um pouco de expressões regulares.

Indentação automática - Outro recurso bastante útil. Funciona relativamente bem em C, C++, Java, etc. Mas outras linguagens não são muito afetadas por isto.

Paranóia - O recurso de backups incrementais pode ser útil quando você tem medo de fazer algo errado, mas em geral, você pode desativá-lo.

Integração com o shell - Este recurso é importantíssimo: É possível definir comandos e menus que passam determinado texto (o texto todo, ou uma seleção) para um programa qualquer, resgatando a saída deste programa para o a janela atual ou para outra janela. O NEdit já vem com uma interface para o spell permitindo fazer a verificação ortográfica de textos. Um pouco abaixo, forneço um exemplo de como integrar esse recurso ao indent para formatar automaticamente código fonte C.

Macros - O editor possui uma linguagem simples, porém poderosa, para criação de macros para automatizar tarefas repetitivas. O NEdit já vem com algumas macros bastante úteis, por exemplo, para retirar o "quoting" de e-mails. Mesmo sem conhecer a linguagem de macro utilizada por ele, é possível gravar sequências de comandos para repeti-los mais tarde.

ctags - Outro recurso útil para programadores C/C++. O NEdit lê arquivos gerados pelo programa ctags, mantendo em memória o local onde uma função está definida. Assim, você pode simplesmente selecionar a chamada a função e pressionando CTRL+D o editor mostrará a implementação/definição da mesma.

Calltips - Outro recurso interessante, que está disponível a partir da versão 5.4 (que no momento é beta). Com os dados gerados pelo ctags, o editor mostra automaticamente o protótipo de uma função em uma caixa de texto flutuante enquanto você digita os argumentos. Muito prático e evita que você precise procurar manualmente o protótipo de uma função.


Configurações adicionais: indent e mouse wheel

O indent faz alguns milagres na formatação de código fonte C, transformando o código daquele seu colega que usa um único espaço de indentação e gosta de "economizar espaço" escrevendo linhas de 120 colunas em algo legível. Segue um passo-a-passo de como colocar uma opção Indentar Código no menu Shell do NEdit:

  1. No menu Preferences, clique em Default Settings, Customize Menus e por fim em Shell Menu.
  2. Na lista de menus, selecione New e no campo Menu Entry digite "Indentar Código".
  3. Em Command input selecione Selection.
  4. Em Command output selecione Same Window.
  5. Selecione a checkbox Output replaces input.
  6. Na caixa Shell command to Execute, digite indent -bad -bap -sob -ncdb -bl -bli0 -nss -npcs -nbc -di0 -i4 -ci4 -cli4 -ts0 -ip0 -nce -npsl -nsaf -nsai -nsaw -bls -bbo -cd4 -fca -o -l80. Esta linha funciona com o indent versão 2.2.8 ou superiores. Você pode personalizar este estilo com as opções fornecidas na manpage do indent.
  7. Por fim, clique em OK. Depois, vá em Preferences e Save settings para que o editor salve esta mudança em seus arquivos de configuração.


Agora você já pode testar a formatação. Selecione um techo de código C, e clique em Shell/Indentar Código para ter a saída formatada. Por exemplo, o código abaixo

int main(int argc, char *argv[]) {
 FILE   *arq;  
 char   *nomearq;
 char   buffer[1024];
 long   objs = 0;
 if(argc != 2) { fprintf(stderr, "ERRO: use %s arquivo\n", argv[0]); return 1; }
 nomearq = argv[1]; arq = fopen(nomearq, "rt");
 if(arq == NULL){ fprintf(stderr, "ERRO: arquivo inacessível (%s)\n", nomearq); return 1; }
 objs = 0; while(fgets(buffer, 1023, arq)) if(*buffer == '!') objs++;
 fclose(arq); printf("%li\n", objs); return 0; }

Ficará formatado como

int main(int argc, char *argv[])
{
    FILE *arq;
    char *nomearq;
    char buffer[1024];
    long objs = 0;

if(argc != 2)
{
fprintf(stderr, "ERRO: use %s arquivo\n", argv[0]);
return 1;
}
nomearq = argv[1];
arq = fopen(nomearq, "rt");
if(arq == NULL)
{
fprintf(stderr, "ERRO: arquivo inacessível (%s)\n", nomearq);
return 1;
}
objs = 0;
while(fgets(buffer, 1023, arq))
if(*buffer == '!')
objs++;
fclose(arq);
printf("%li\n", objs);
return 0;
}


Outro recurso bastante utilizado no X, que infelizmente não é suportado por default na biblioteca Motif é a roda do mouse. É bastante produtivo correr rapidamente o texto pela tela com ela. Para habilitar esta opção no NEdit, adicione as seguintes opções ao seu arquivo .Xdefaults.

! --- Mouse com scroll para o NEdit  
NEdit*text.Translations: #override\n\
Shift<Btn4Down>,<Btn4Up>: scroll_up(1)\n\
Shift<Btn5Down>,<Btn5Up>: scroll_down(1)\n\
Ctrl<Btn4Down>,<Btn4Up>: previous_page()\n\
Ctrl<Btn5Down>,<Btn5Up>: next_page(1)\n\
<Btn4Down>,<Btn4Up>: scroll_up(3)\n\
<Btn5Down>,<Btn5Up>: scroll_down(3)\n

Pronto! Rolando a roda do mouse, o texto irá correr 3 linhas a cada "passo" da roda. Se você segurar a tecla CTRL e rolar, o texto irá se deslocar uma tela inteira.

Informações para contato:
Nome: Alexandre Erwin Ittner
Nick: dermeister
E-mail: aittner@netuno.com.br


Postado por brain em agosto 23, 2003 09:30 PM

Comentários para "Usando o nedit"

Antes de comentar...

- Preserve a qualidade desta discussão
- Leia os Termos de Uso.
- Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum.
- Mantenha o foco nos argumentos e no assunto
- Não faça ataques pessoais.
- Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro
- Não seja um e-mala ;-)


O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.