As secções seguintes explicam as seguintes categorias de comandos vi.
- p>Movendo-se num ficheiro
- p>Inserir texto
- p>p>Mudar e substituir texto/li>
- p>p>Desfazer alterações ao texto
- p>Verificando a sua ortografia
- p>Formatting your file output
- p>Comandos de repetição
li>>p>p>Deleting text/li>
Movendo-se num ficheiro
Nas secções anteriores aprendeu como criar, guardar, imprimir, e sair de um ficheiro vi. Agora que criou um ficheiro, terá de compreender os conceitos necessários para navegar dentro dele. Abra agora o seu ficheiro de treino, e tente cada um dos comandos que são discutidos nesta secção.
Movendo o Cursor
Quando inicia o vi, o cursor está no canto superior esquerdo do ecrã do vi. No modo de comando, pode mover o cursor com um número de comandos de teclado. Certas teclas de letras, as teclas de setas, e a tecla Return, tecla Back Space (ou Delete), e a Barra de Espaço podem ser utilizadas para mover o cursor quando se está no modo de comando.
Nota –
Os comandos mais vi são sensíveis a maiúsculas e minúsculas. O mesmo comando digitado em caracteres minúsculos e maiúsculos pode ter efeitos diferentes.
Mover com teclas de setas
Se a sua máquina estiver equipada com teclas de setas, experimente-as agora. Deverá ser capaz de mover o cursor livremente sobre o ecrã utilizando combinações das teclas de setas para cima, para baixo, para a direita, e para a esquerda. Note que só pode mover o cursor sobre textos ou espaços de entrada já existentes.
Se estiver a utilizar o vi de um terminal remoto, as teclas de setas podem não funcionar correctamente. O comportamento das teclas de setas depende do seu emulador de terminal. Se as teclas de seta não funcionarem para si, pode usar os seguintes substitutos:
-
Para mover para a esquerda, prima h.
- p> para mover para a direita, prima l.
- p> Para mover para baixo, prima j.
- p>p> Para mover para cima, prima k. /li>
Mover uma palavra
Pressionar w (“palavra”) para mover o cursor para a direita uma palavra de cada vez.
Pressionar b (“back”) para mover o cursor para a esquerda, uma palavra de cada vez.
Pressionar W ou B para mover o cursor para além da pontuação adjacente para o próximo espaço em branco ou para o anterior.
Pressionar e (“end”) para mover o cursor para o último caracter da palavra actual.
Mover para Início ou Fim de Linha
Pressionar ^ para mover o cursor para o início da linha actual.
Pressionar $ para mover o cursor para o fim da linha actual.
Mover para baixo uma linha
Pressionar a tecla Return para mover o cursor para o início da próxima linha para baixo.
Mover para a esquerda
Pressionar a tecla Voltar Espaço para mover o cursor um carácter para a esquerda.
Mover para a direita
Pressionar a barra de espaço para mover o cursor um caractere para a direita.
Mover para o topo
Pressionar H (“alto”) para mover o cursor para o topo do ecrã.
Movendo para o Meio
Pressionar M (“meio”) para mover o cursor para o meio do ecrã.
Mover para a parte inferior
Pressionar L (“baixo”) para mover o cursor para a parte inferior do ecrã.
Paging and Scrolling
Se se mover para baixo quando o cursor está na parte inferior do ecrã, ou se mover para cima quando o cursor está na parte superior do ecrã, verá o texto a rolar para cima ou para baixo. Esta rolagem pode ser uma forma eficaz de exibir mais texto num ficheiro curto, mas pode ser aborrecido mover-se desta forma através de um ficheiro longo.
Pode folhear ou rolar para trás ou para a frente através de um ficheiro, de um ecrã ou de um meio ecrã de cada vez. Para experimentar estes comandos em tinta, pode querer adicionar texto para que tenha um ficheiro mais longo para trabalhar.
Nota que a paginação e a rolagem são fundamentalmente diferentes. A rolagem, de facto, percorre o cursor para cima ou para baixo através do texto uma linha de cada vez, como se estivesse num rolo de papel. A paginação move o cursor para cima ou para baixo através do texto, uma linha de cada vez, como se estivesse num rolo de papel. Num sistema rápido, pode não se notar a diferença. Contudo, se estiver a trabalhar a partir de um terminal remoto ou em qualquer outra situação em que o seu sistema esteja a funcionar mais lentamente do que o habitual, esta diferença pode tornar-se dolorosamente aparente.
Page Forward One Screen
Para avançar (mover para baixo) um ecrã cheio, prima Ctrl-F. (Mantenha premida a tecla Control e prima a tecla F.) O cursor move-se para o canto superior esquerdo do novo ecrã.
Ecrã de avanço de uma metade
Para avançar uma metade de um ecrã, premir Ctrl-D.
Página Para trás um ecrã
Para retroceder (ou seja, avançar) um ecrã, prima Ctrl-B.
Retroceder um ecrã
Para retroceder um ecrã, prima Ctrl-U.
Inserir Texto
vi>vi fornece muitos comandos para a inserção de texto. Esta secção introduz o mais útil destes comandos. Note que cada um destes comandos coloca o vi em modo de entrada. Para usar qualquer um destes comandos, deve primeiro estar em modo de comando. Lembre-se de premir Esc para se certificar de que está no modo de comando.
Append
Tipo a (anexar) para inserir texto à direita do cursor. Experimente movendo o cursor para qualquer lugar numa linha e digitando a, seguido do texto que deseja adicionar. Prima Esc quando tiver terminado.
Tipo A para adicionar texto ao fim de uma linha. Para ver como este comando funciona, posicione o cursor em qualquer lugar numa linha de texto e digite A. O cursor move-se para o fim da linha, onde pode digitar as suas adições. Prima Esc quando tiver terminado.
Inserir
Inserir texto à esquerda do cursor, digitando i a partir do modo de comando.
Tipo I para inserir texto no início de uma linha. O comando move o cursor a partir de qualquer posição dessa linha. Prima Esc para voltar ao modo de comando depois de digitar o texto desejado.
Linha Aberta
Utilizar estes comandos para abrir novas linhas, seja acima ou abaixo da posição actual do cursor.
Tipo o para abrir uma linha abaixo da posição actual do cursor. Para experimentar, digite o seguido de um pouco de texto. Pode digitar várias linhas de texto, se desejar. Prima Esc quando tiver terminado.
Tipo O para abrir uma linha acima da posição actual do cursor.
Texto em mudança
Texto em mudança envolve a substituição de uma secção do texto por outra. vi tem várias maneiras de o fazer, dependendo das circunstâncias.
Mudar uma palavra
Para substituir uma palavra, posicionar o cursor no início da palavra a ser substituída. Escreva cw, seguido da nova palavra. Para terminar, prima Esc.
Para mudar parte de uma palavra, coloque o cursor sobre a palavra, à direita da parte a ser guardada. Digite cw, digite a correcção, e prima Esc.
Mudar uma linha
Para substituir uma linha, posicione o cursor em qualquer parte da linha e digite cc. A linha desaparece, deixando uma linha em branco para o seu novo texto (que pode ser de qualquer comprimento). Prima Esc para terminar.
Substituir caracter(es)
Para substituir um ou mais caracteres pelo caracter sob o cursor, digite s, seguido do novo texto. Premir Esc para voltar ao modo de comando.
Substituir um caractere
Utilizar este comando para substituir o caractere realçado pelo cursor por outro caractere. Posicionar o cursor sobre o carácter e digitar r, seguido de apenas um carácter de substituição. Após a substituição, vi regressa automaticamente ao modo de comando (não é necessário premir Esc).
Undoing Changes
Quando editar texto e fazer alterações a um ficheiro vi, poderá ocasionalmente desejar não ter alterado alguma coisa. Os comandos de desfazer do vi permitem-lhe fazer o backup de uma operação e continuar a partir daí.
Desfazer o Comando Anterior
Se cometer um erro no vi ou se simplesmente mudar de ideias após a conclusão de uma operação, pode desfazer o seu último comando, premindo u imediatamente após o comando. Não precisa de premir Esc depois de digitar u. Ao premir u uma segunda vez, desfaz o desfazer.
Desfazer Alterações a uma Linha
Tipo U para desfazer todas as alterações que fez a uma linha. Este comando só funciona se não tiver deslocado o cursor para fora da linha. Não é necessário premir Esc depois de escrever U.
Deleting Text
Estes comandos vi eliminam o caracter, palavra, ou linha que indica. vi permanece em modo de comando, pelo que quaisquer inserções de texto subsequentes devem ser precedidas por comandos adicionais para entrar em modo de entrada.
Apagar um caractere
Para apagar um caractere, coloque o cursor sobre o caractere a apagar e escreva x.
O comando x também apaga o espaço ocupado pelo caractere – quando uma letra é removida do meio de uma palavra, as restantes letras fechar-se-ão, não deixando qualquer espaço. Também pode apagar espaços em branco numa linha com o comando x.
Para apagar um caractere antes (à esquerda do) do cursor, digite X (maiúsculas).
Apagar uma palavra ou parte de uma palavra
Para apagar uma palavra, posicionar o cursor no início da palavra e digitar dw. A palavra e o espaço que ocupava são removidos.
Para apagar parte de uma palavra, posicionar o cursor sobre a palavra à direita da parte a ser guardada. Digite dw para apagar o resto da palavra.
Apagar uma linha
Para apagar uma linha, posicione o cursor em qualquer parte da linha e digite dd. A linha e o espaço que ocupava são removidos.
Copiar e mover texto – Yank, Delete, e Put
Muitos processadores de texto permitem-lhe “copiar e colar” e “cortar e colar” linhas de texto. O editor vi também inclui estas características. O equivalente ao modo de comando vi de “copiar e colar” é yank and put. O equivalente a “cortar e colar” é apagar e colocar.
Os métodos para copiar ou mover pequenos blocos de texto no vi envolvem o uso de uma combinação dos comandos yank, delete, e put.
Linhas de cópia
Copiar uma linha requer dois comandos: yy ou Y (“yank”) e ou p (“put below”) ou P (“put above”). Note-se que Y faz a mesma coisa que yy.
Para puxar uma linha, siga estes passos.
- p>Posicione o cursor em qualquer lugar na linha que pretende puxar.
- p>Tipo yy.
- p>P>Move o cursor para a linha acima onde pretende colocar (copiar) a linha puxada.
-
P>Tipo p.
Uma cópia da linha puxada aparece numa nova linha abaixo do cursor.
Para colocar a linha puxada numa nova linha acima do cursor, digite P.
O comando yy funciona bem com uma contagem: para puxar 11 linhas, por exemplo, digite 11yy. Onze linhas, em contagem decrescente a partir do cursor, são yanked, e vi indica isto com uma mensagem na parte inferior do ecrã: 11 linhas arrancadas.
P>Pode também utilizar os comandos P ou p imediatamente após qualquer um dos comandos de eliminação discutidos anteriormente. Esta acção coloca o texto que eliminou acima ou abaixo do cursor, respectivamente.
Cautela –
Utilizar apenas comandos de deslocação do cursor entre o puxar ou apagar e o colocar. Se apagar ou arrancar qualquer outro texto antes de colocar o novo texto, as linhas que arrancou ou apagou são perdidas.
Moving Lines
Moving lines also requires two commands: dd (“delete”) and either p or P.
Para mover uma linha, posicione o cursor em qualquer parte da linha e escreva dd. Por exemplo, para apagar 5 linhas, digite 5dd.
Next, mova o cursor para a linha acima onde deseja que a linha apagada seja reinserida e digite p. Isto insere o texto numa nova linha abaixo do cursor.
Alternativamente, pode colocar a linha apagada acima do cursor, digitando P.
Usar uma contagem para repetir comandos
Muitos comandos vi podem ser precedidos por um factor de repetição (chamado contagem)-um número que precede o comando e diz-lhe quantas vezes deve repetir a operação.
A maior parte dos comandos das secções anteriores faz a contagem. Por exemplo, 3dd repete o comando para apagar uma linha três vezes, apagando assim três linhas. 2dw apaga duas palavras, e 4x apaga quatro caracteres ou espaços. Também se pode utilizar contagens com comandos para mover o cursor, tais como 3w e 2Ctrl-F. Na secção Resumo dos Comandos básicos vi cada comando que faz uma contagem é indicado por “” antes do nome do comando.
Digitação de um ponto (.) repete o comando de alteração de texto anterior. Por exemplo, se acabou de apagar uma linha com dd, pode mover o cursor para outra linha e apagá-la simplesmente digitando um ponto.