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
;