103.8 Editção básica de texto
Este objetivo inclui navegação vi, modos vi, inserção, edição, exclusão, cópia e localização de texto. Também inclui o conhecimento de outros editores comuns e a configuração do editor padrão.
VI
Na maioria das distribuições Linux, o editor vi (abreviatura de “visual”) é pré-instalado e é o editor padrão no ambiente shell. vi é um editor de texto interativo, que mostra o conteúdo do arquivo na tela à medida que ele é editado. Como tal, permite ao usuário mover-se e fazer modificações em qualquer parte do documento. No entanto, ao contrário dos editores visuais da área de trabalho gráfica, o editor vi é um aplicativo shell com atalhos de teclado para todas as tarefas de edição.
Uma alternativa ao vi, chamada vim (vi melhorado), às vezes é usada como um substituto moderno para o vi. Entre outras melhorias, o vim oferece suporte para realce de sintaxe, desfazer/refazer multinível e edição de vários documentos. Embora mais engenhoso, o vim é totalmente compatível com as versões anteriores do vi, tornando ambos indistinguíveis para a maioria das tarefas.
A forma padrão de iniciar o vi é fornecer a ele um caminho para um arquivo como parâmetro. Para ir direto para uma linha específica, seu número deve ser informado com um sinal de mais +, como em vi +9 /etc/fstab para abrir /etc/fstab e posicionar o cursor na 9ª linha. Sem um número, o sinal de mais por si só coloca o cursor na última linha.
A interface do vi é muito simples: todo o espaço disponível na janela do terminal é ocupado para apresentar um arquivo, normalmente informado como um argumento de comando, ao usuário. As únicas dicas visuais são uma linha de rodapé mostrando a posição atual do cursor e um til ~ indicando onde o arquivo termina. Existem diferentes modos de execução para ovionde o comportamento do programa muda. Os mais comuns são: modo de inserção e modo normal.
Modo de inserção
O modo de inserção é direto: o texto aparece na tela à medida que é digitado no teclado. É o tipo de interação que a maioria dos usuários espera de um editor de texto, mas não é como o vi apresenta um documento pela primeira vez. Para entrar no modo de inserção, o usuário deve executar um comando de inserção no modo normal, podendo ser a tecla Insert ou a letra i. A tecla Esc termina o modo de inserção e retorna ao modo normal, o modo vi padrão.
Modo normal
O modo normal também conhecido como modo de comando é como ovié iniciado por padrão. Neste modo, as teclas do teclado são associadas a comandos para navegação e tarefas de manipulação de texto. A maioria dos comandos neste modo são chaves exclusivas. Algumas das teclas e suas funções no modo normal são:
| Teclas | Descrição |
|---|---|
| 0, $ | Vá para o início e o fim da linha |
| 1G, G | Vá para o início e o final do documento |
| gg | Vá para o início |
| /(String) | Faz buscas pela palavra desejada. Apertenpara avançar na busca eNpara voltar. |
| ?(String) | Faz buscas invertida (Inicia a busca pelo final do arquivo) pela palavra desejada. |
| h | Move o cursos para esquerda (Igual seta para esquerda) |
| l | Move o cursos para direita (Igual seta para direita) |
| j | Move o cursos para baixo (Igual seta para baixo) |
| k | Move o cursos para cima (Igual seta para cima) |
Tecla i ou insert | Entra no modo de edição. |
| o | Entra no modo de edição, mas adiciona uma linha abaixo. |
| O | Entra no modo de edição, mas adiciona uma linha acima. |
| a | Edita a partir do próximo caractere. |
| d (setas) | Para baixo apaga a linha atual mais a linha de baixo. Para cima apaga a linha atual mais a linha de cima. Setas para os lados, apagando o próximo caractere ou o anterior. |
| A | Edita a partir do final da linha. |
| u | Desfaz a ultima alteração. |
| Crtl+r | Refaz a ultima alteração. |
| dd | Recorta uma única linha |
| (numero)dd | Recorta a quantidade de linhas estabelecidas |
| p | Cola abaixo |
| P | Cola acima |
| cc | Recorta a linha e entra no modo de edição. |
| yy | Copia uma única linha |
| (numero)yy | Copia a quantidade de linhas estabelecidas |
| :w | Salva o arquivo |
| :q | Sai do arquivo |
| :quit | Sai do arquivo |
| :x | Salva e sai do arquivo |
| ZZ ou Shift+zz | Salva e sai do arquivo |
| ZQ | Sai do arquivo sem salvar |
: Qualquer coisa com ! | Força a ação, ex.: :q! força a saída (sem salvar), :w! força o salvamento do arquivo. |
| :!(Comando) | Executa um comando (não interfere no arquivo). |
| :w (nome) | Salva com outro nome (Cria outro arquivo) |
| :%s/String1/String2/ | Substitui String1 por String2 |
| :ce | Alinhamento central |
| :ri | Alinhamento a direita |
| :le | Alinhamento a esquerda |
| :(numero) | Posiciona o cursos na linha que tem do numero indicado. |
| :(numero)d | Apaga a linha do numero que foi indicado |
| :e (arquivo) | Muda para o outro arquivo |
:set number ou set nu | Habilita a numeração das linhas. |
:set nonumber ou set nonu | Desabilita a numeração das linhas. |
| :read ! (Comando) | Adiciona a saída do comando ao arquivo. |
Modo replace (Substituição)
Serve apenas para que cada caractere digitado substitua o próximo caractere.
Nano
Nano é um editor de texto para sistemas Unix-like ou ambientes usando command line interface. Ele emula o editor de texto Pico, parte do cliente de email Pine, e também provê funcionalidade adicional. Em contraste com Pico, nano é licenciado sob o GNU General Public License.
Só possui o modo de edição.
Na parte inferior do nano já temos algumas opções para operar com a ferramenta.
Quando você notar o circunflexo ^ na parte inferior do nano, onde temos o menu de ajuda, esse circunflexo significa Ctrl. Quando você notar o M na parte inferior do nano, onde temos o menu de ajuda, esse M significa Alt.
| Atalho | Descrição |
|---|---|
| ^g | Menu de Ajuda |
| ^x | Sair |
| ^w | Pesquisa por alguma string |
| ^o | Salvar |
| M-u | Desfazer a ultima alteração |
| M-e | Refazer a ultima alteração |
| Alt+/ | Vai para o final do texto |
| Alt+\ | Vai para o começo do texto |
| ^v | Vai para "próxima página", começa a paginar o arquivo |
| ^y | Volta a página |
| ^Shift_ | Abre um menu para digitar o número da linha que queremos ir |
Emacs
O GNU Emacs Manual chama o Emacs de editor de exibição em tempo real extensível, personalizável e autodocumentado. Além de apenas ser capaz de editar arquivos de texto simples, o Emacs inclui recursos especiais para ajudá-lo a escrever em muitas linguagens humanas diferentes e linguagens de programação/marcação:
Em ambientes com wayland ou xorg, o emacs vai abrir uma janela (interface gráfica), para isso que não ocorra,
sempre rode emacs -nw arquivo.
| Atalho | Descrição |
|---|---|
| Ctrl+x Ctrl+c | Sair |
| Ctrl+x Ctrl+s | Salvar arquivo |
| Ctrl+x s | Salva mas pergunta antes |
| Ctrl+x Ctrl+w | Salvar como |
| Ctrl+s \<string> | Faz uma busca |
| Ctrl+r \<string> | Faz uma busca reversa |
| Ctrl+x Ctrl+f | Busca os arquivos para abrir |
| Ctrl+k | Recorta uma linha |
| Ctrl+y | Cola |
| Ctrl+e | Vai para o final de linha |
| Ctrl+a | Vai para o começo da linha |
| Ctrl+/ | Desfaz a ação |
| Alt+x \<tipo> | Seleciona o tipo da linguagem de interpretação do arquivo |
Mudar o Editor padrão
Alguns comandos, que requerem alguma alteração em arquivos utilizam o editor padrão, geralmente, se não estiver configurado eles te perguntam, mas se estiver, vai abrir o editor padrão (as vezes um editor que você não goste tanto), um exemplo disso é o comando crontab -e.
Existem 2 formas de alterar o editor padrão:
A primeira é usar o comando
select-editor(funciona apenas para sistema Debian ou derivados).A segunda é exportar a variável EDITOR, assim
export EDITOR=nano;