Resumo de Comandos do Emacs

Aviso Muito Importante

Apesar de as instruções aqui tratarem do desenvolvimento de programas sob Linux, programas que são bem escritos em Linguagem C ou C++ funcionam em qualquer plataforma igualmente bem.

Em outras palavras, se um programa for bem feito, ele não depende (ou não deve depender) da plataforma em que ele foi escrito. A característica de um programa independer de uma arquitetura em particular é chamada portabilidade. É claro que portabilidade é um dos quesitos adotados para decidir se um programa está bem escrito, apesar de não ser o único quesito.

Em outras palavras ainda: você pode muito bem fazer um programa eficiente, portável e elegante em Linguagem C ou C++ sob ambiente Microsoft Windows. Não é necessário que seus programas sejam escritos sob Linux para eles serem bons.

Mas um programa bem feito --- a menos de alguns certos casos bem específicos --- TEM que rodar corretamente em qualquer ambiente, seja lá qual tenha sido a plataforma em que ele foi escrito. Caso contrário, o programa não é portável e, provavelmente, não foi bem escrito.

Introdução

Aqui está um resumo de alguns dos comandos de uso mais freqüente de um dos mais completos e poderoso editores de texto existentes, o GNU/Emacs. A última versão do Emacs para Windows está disponível via FTP pelo site da Free Software Foundation.

No que se segue, a tecla Control é abreviada por uma letra C maiúscula, a tecla Alt é abreviada por uma letra M maiúscula e a tecla Shift é abreviada por uma letra S maiúscula. A tecla Alt também pode ser substituída pelo uso da tecla Esc.

Outras Fontes de Informações sobre o Emacs

Para você obter mais informações sobre o Emacs, há diversas alternativas. A principal talvez seja o próprio site da Free Software Foundation. Uma lista de sites que possuem úteis informações sobre o Emacs está listada a seguir:

Manipulação de Arquivos

ComandoSignificado
C-x C-fAbrir arquivo
C-x C-sSalvar arquivo
C-x C-wSalvar como
C-x sSalvar todos arquivos abertos
C-x iInserir arquivo no documento corrente
C-x C-bAlternar para um arquivo já carregado
C-x C-cSair do Emacs
C-x v-vFaz checkin/checkout de arquivo de repositório CVS/RCS
C-x RET f utf-8Força o buffer atual ser interpretado como em UTF-8
C-x RET c utf-8Prefixo para operações com UTF-8

Navegação em Arquivos

ComandoSignificado
C-gInterromper comando em execução
C-fIr ao próximo caractere (igual a seta para direita)
C-bIr ao caractere anterior (igual a seta para esquerda)
M-vVoltar uma página (igual a PgUp)
C-vAvançar uma página (igual a PgDown)
C-aIr ao início da linha (igual a Home)
C-eIr ao fim da linha (igual a End)
M-<Ir início do documento (igual a C-Home)
M->Ir ao fim do documento (igual a C-End)
C-sBusca incremental
C-rBusca incremental reversa
C-M-nAvança ao próximo parêntese que casa com aquele sob o cursor
C-M-pAvança ao último parêntese que casa com aquele sob o cursor

Edição de Arquivos

ComandoSignificado
M-%Encontrar e trocar
C-M-%Encontrar e trocar (versão expressões regulares)
C-espaçoMarcar início de bloco
C-wCortar bloco
M-wCopiar bloco
C-yColar bloco
S-DelApagar o bloco selecionado
C-_Undo (desfazer)
C-kApagar do cursor até o fim da linha
M-cCapitalizar palavra (i.e., deixar inicial maiúscula)
M-lDeixar palavra em minúsculas
M-uDeixar palavra em maiúsculas
C-kApagar do cursor até o fim da linha
C-tTroca caractere sob cursor com caractere anterior

Comandos Dependentes de Modos

Observação importante: para editar um arquivo em C, não se esqueça de que o nome dele deve conter o sufixo .c, para que o Emacs saiba como o arquivo deve ser colorido e indentado.

No c-mode, M-x compile compila o programa em edição (não utilize este comando caso você não saiba exatamente o que ele faz).

No latex-mode com o AUCTeX carregado, C-c C-c compila o texto com LaTeX.

Uso de Outros Comandos

Bônus: Uso do GCC

Uso para Programas em C puro

Apesar de o uso do GCC ser independente do uso do Emacs, coloquei nesta página uma descrição sucinta de como o GCC pode ser usado para compilar programas escritos em Linguagem C:

gcc -W -Wall -ansi -pedantic -O2 arquivo_fonte -o arquivo_executável

Para executar o programa gerado no passo anterior, use (note que não há espaço entre o ./ e o nome do aquivo):

./arquivo_executável

É necessário que você preste bastante atenção aos comandos, porque letras minúsculas são consideradas diferentes de maiúsculas para o GCC (e para outros programas em Linux, de uma forma geral).

Uso para Programas em C++

Caso seu programa esteja escrito em Linguagem C++, a linha de comandos para compilação deve ser alterada (normalmente arquivos escritos em C++ possuem a extensão .cpp):

g++ -W -Wall -ansi -pedantic -O2 arquivo_fonte -o arquivo_executável

Mais uma vez vale o comentário de que para executar o programa gerado no passo anterior você deve usar (note que não há espaço entre o ./ e o nome do aquivo):

./arquivo_executável

Micro-Resumo de opções do GCC

O significado das opções passadas ao GCC está listado na tabela a seguir:

OpçãoSignificado
-WallLiga grande quantidade de warnings do GCC
-WLiga warnings extras, além daqueles ligados por -Wall
-ansiDesabilita extensões do GCC às linguangens C/C++
-pedanticEmite warnings sobre uso de itens proibidos pelo padrão ANSI
-O2Liga o terceiro nível de otimização de código do GCC
-oEspecifica qual arquivo será gerado como saída (executável)

Como Compilar Programas em Vários Módulos

Suponha que você tenha escrito um programa que esteja dividido em vários módulos. Digamos que eles sejam chamados mod1.cpp, mod2.cpp, mod3.cpp, ..., modn.cpp, alguns dos quais possuem seus respectivos arquivos-cabeçalho.

Por exemplo, um módulo que implementa uma lista ligada seria, normalmente, implementado como um arquivo, digamos, lista.cpp com várias funções que manipulam listas ligadas e com um arquivo chamado lista.h, que contém os protótipos das funções, que normalmente seria incluído por quem quer usar as funções para lista ligada. É claro que você faria um módulo que consistiria do seu programa principal, onde você definiria a função main().

Para compilar um tal programa, você deve proceder em várias etapas: inicialmente, você deve compilar cada um dos módulos, para gerar um arquivo-objeto referente a cada um deles. O arquivo objeto referente ao módulo mod1.cpp possui o nome mod1.o. Perceba a extensão do arquivo objeto.

Para você compilar um módulo e gerar um arquivo objeto referente ao módulo, você deve usar a seguinte linha de comando:

g++ -c mod1.cpp

É claro que você pode usar opções a mais na linha de comando (como -Wall, -ansi, -pedantic) e elas são, inclusive, recomendadas. Mas não são estritamente necessárias.

Depois que você compilar cada um dos arquivos correspondentes aos módulos do seu programa, você deve juntá-los para gerar o arquivo executável. Este processo é chamado link-edição. Para fazer a link-edição de vários arquivos-objetos, você deve utilizar a seguinte linha de comandos:

g++ mod1.o mod2.o mod3.o ... modn.o -o executável

Pronto. Seu arquivo executável acabou de sair do forno e você já pode rodá-lo, com o comando:

./executável

Bônus: Uso de disquetes em Linux

Para você poder usar os comandos listados abaixo, é necessário que seu disquete não esteja montado no sistema. Caso contrário, eles não funcionarão e você receberá alguma mensagem de erro na tela do seu terminal. Desmonte o disquete para usar livremente os comandos abaixo.

Para copiar arquivos de um computador rodando Linux para um disquete, digite:

mcopy arquivo_a_copiar a:

Para copiar um arquivo do disquete para um computador com Linux, use (não se esqueça do ponto no final do comando):

mcopy a:arquivo_a_copiar .

Não se esqueça de apagar seus arquivos do computador com Linux após seu uso, se você estiver usando uma conta de uso comunitário (senão, algum outro usuário pode copiar todo seu trabalho). Para fazer isso, use o comando:

rm arquivo_a_apagar

Bônus: Documentação de Comandos

Para você saber mais a respeito de qualquer comando do Linux (e, também, de funções da biblioteca padrão da Linguagem C), você pode usar o comando man. Por exemplo, para você aprender mais sobre, digamos, o comando ls, digite, na linha de comandos:

man ls

Para você navegar na ajuda, utilize as teclas de setas ou PgUp e PgDown, como é de costume. Para sair da ajuda, digite a tecla q.


Esta página é orgulhosamente escrita em XHTML 1.0 válido. Para sua confecção, apenas software livre foi usado. Software livre é muito mais do que apenas software gratuito!


Página mantida pelo Prof. Rogério Brito.
Mais recente modificação em: 2004-11-24.