Textos com a tag: vim
Dicas de Vim
22.08.2008 | Linux
Tags: dicas, Linux, vim
Desde que comecei o curso de linux, to meio viciado nesse editor. Antigamente só sabia entrar e sair dele, mas agora que peguei o jeito, não custa nada compartilhar, muita gente ainda pode se enrolar um bocado. ;P
Para copiar e colar linhas no vi, basta estar no modo de comando (pressione ESC caso esteja em dúvida) e ir para a linha desejada:
yy = Copia toda a linha
3yy = Copia 3 linhas a partir do cursor
p = Cola a linha copiada
5p = Cola cinco vezes a linha copiada
dd = Recorta a linha
4dd = Recorta quatro linhas a partir do cursor
Caso você deseje copiar apenas uma palavra ou trecho da linha, basta entrar no modo visual. Para isso, vá para o primeiro caractere do trecho desejado e pressione a tecla v, depois, mova o cursor com as teclas de direção para selecionar o que você deseja. Após selecionar, basta digitar y para copiar, d para recortar e p para colar.
Caso tenha feito alguma coisa errada, basta pressionar u para cada ação que você deseja desfazer. Caso tenha desfeito mais ações que o necessário, basta refazer, pressionando ctrl+r.
Tá fazendo um script e deu erro na linha 1387 e tá cansado de pressionar a seta pra baixo e pensar na vida? Digite :1387 e seja feliz. Ou então você quer ir direto pra última linha do arquivo mas não quer ter que digitar :10000000 e ainda correr o risco de não funcionar, basta pressionar shift+g.
Se o que você quer é procurar por uma palavra específica no arquivo, basta digitar / seguido da palavra desejada (sem o :), por exemplo: /todo. Se a ocorrência encontrada não for a que você queria, basta ir pressionando n até chegar na que você quiser, se na pressa você passou direto pela palavra, basta pressionar shift+n que o vi vai voltando para ocorrências anteriores.
Mas se ao invés de somente localizar, você quiser substituir a ocorrência de uma palavra, basta executar o seguinte comando (supondo que você queira substituir “todo” por “done”): :s/todo/done/. Sem espaços e com a barra no final! Mas esse comando funciona somente na linha onde está o cursor. para substituir todas as ocorrências do texto, basta digitar :%s/todo/done/g. Esse g no final do comando que diz que vai trocar todas as ocorrências. Sem ele, o vi troca somente a primeira ocorrência de cada linha. Resumindo então: Sem o sinal de %, troca somente na linha onde está o cursor. Com o sinal de %, troca em todo o arquivo. Sem o g no final troca somente a primeira ocorrência de cada linha. Com o g no final, troca todas as ocorrências de cada linha.
Se por algum motivo, no meio da edição do arquivo você precisar executar algum comando no shell do linux, mas não quer fechar o editor nem usar outro terminal, basta digitar o comando desejado dessa forma, por exemplo: :!date. O vi vai executar o comando e voltar para a edição do arquivo como se nada tivesse acontecido. Caso você queira colocar o resultado do comando dentro do seu arquivo, basta colocar o cursor no local desejado para a inserção e digitar seu comando com um ponto antes da exclamação, assim: :.!date. O vi executará o comando date e escreverá a data atual dentro do seu arquivo.
Agora vamos supor que você queira copiar o conteúdo de um outro arquivo dentro do seu. Digite /split arquivo. Por exemplo, :split /etc/motd. O vi vai dividir a tela em dois blocos e você poderá editar os dois arquivos normalmente. para trocar entre os paineis, basta pressionar ctrl+ww. Você pode abrir vários arquivos dessa forma, mas a área de edição de cada um vai diminuindo, claro. :P
Caso você esteja pensando “Pô, bem que o vi poderia ter abas também, todo mundo tem abas hoje em dia!” fique feliz, desde a versão 7 o vi possui esse recurso. Para abrir uma nova aba, basta digitar :tabnew arquivo. Para navegar através delas, basta usar os comandos: :tabnext, :tabprev, :tabfirst, :tablast ou :tab n, onde n é o número da tab desejada.
De forma similar, quando você abrir vários arquivos simultâneos no vi ($vi arq1 arq2 arq3, por exemplo), para navegar entre esses arquivos basta usar os comandos: :next, :previous, :first, :last ou :3next ou :5prev. Nos dois últimos casos, o vi vai pular tantos arquivos quanto for o valor do número antes do comando (se tiver isso tudo de arquivo, claro).
E finalmente para sair do editor, além do famigerado :wq para salvar e sair, você também pode pressionar shift+zz.
Dois comandos que eu aconselho colocar direto no arquivo de configuração do Vim para ele já abrir com essas funcionalidades é o syntax highlight e a numeração de linhas.
Para fazer isso, basta editar o arquivo /etc/vim/vimrc e descomentar a linha syntax on para habilitar o highlight e incluir o comando set number para numerar as linhas.
Além desses, o Vim possui milhares de outros comandos e formas de fazer essas mesmas ações que falei aqui. Para saber mais, basta ler a documentação do programa.
[ 1 ]
