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:
Preferences
, clique em Default Settings
, Customize Menus
e por fim em Shell Menu
. New
e no campo Menu Entry
digite "Indentar Código". Command input
selecione Selection
. Command output
selecione Same Window
. Output replaces input
. 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
. 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
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.