Dia 14: Arquivos
Vocês sabem que usar "vim \
).
Outra: vocês podem abrir um arquivo sem fechar o vim usando ":e <arquivo>
"
(":e" de ":edit"). E :e
aceita todos os parâmetros que a linha de comando
aceita; assim é possível fazer ":e arquivo +120
" para abrir o arquivo
arquivo
na linha 120 ou ":e arquivo +/hello
" para abrir o arquivo arquivo
na primeira ocorrência de "hello" no conteúdo.
Mais uma: enquanto vocês não fecharem o vim, ele vai mantendo uma lista de
arquivos que já foram abertos, que pode ser visto com ":files
". E ":files
"
vai colocar um número antes do nome do arquivo. assim, se vocês quiserem abrir
de novo o primeiro arquivo desde que o vim foi aberto, pode ser usando ":e#1
"
(a parte legal disso vem depois).
Ainda sobre arquivos, se vocês colocarem o cursor numa palavra que é um arquivo
(por exemplo, um #include
), vocês podem abrir esse arquivo diretamente usando
"[g][f]
" ("goto file", segundo o help do vim).
Agora vem a parte legal do ":e#<numero>
": se vocês não usarem o número, o vim
vai abrir o arquivo exatamente anterior que tava aberto.
Por exemplo: vocês estão no arquivo C, mas precisam editar um header; o que
pode ser feito é ir até o #include
desse header, usar "[g][f]
" pra abrir o
arquivo de header, editar e, pra voltar pro arquivo C, ":e#
".
Mais uma: o vim tem um atalho pro nome do arquivo em modo de comando (lembrando: modo de comando é aquele que tu inicia quando usa ":"). Esse atalho é "%".
":e %
" vai abrir o mesmo arquivo de novo (no caso de ter sido feita alguma
alteração por fora do vim). ":e
" sem nenhum parâmetro é um atalho pra isso.
Existe um outro atalho pro nome do arquivo: "%<". Isso é o nome do arquivo sem a extensão.
Por que isso é legal? Porque se tu tiver editando "arquivo.c" e quiser editar o
header dele, tu pode simplesmente fazer ":e %<.h
" e ele vai expandir pra
"arquivo.h"
E só lembrando: ":w
" salva arquivo, ":w <nome>
" salva o arquivo com outro
nome (mas mantém o nome original ainda), ":wall
" vai salvar todos os arquivos
abertos (que vai fazer mais sentido quando falarmos de splits e tabs).
O único "problema" (que não chega a ser um problema) do ":w
" é que ele
sempre salva o arquivo, tendo alterações ou não.
Se vocês usarem "[Z][Z]
", o VIM só vai salvar se houverem alterações no texto
e depois fecha o VIM.
Basicamente é um:
If hasChanges then
call(":wq")
else
call(":q";)
Endif