Workshop de Vim
Bernardo Belchior & Edgar Passos
slides.com/bernardobelchior/workshop-vim
Pequena História
- Primeiro lançamento em 1991
- É um clone do editor de text vi
- É grátis e open source
- Versão 8 saiu em abril de 2017
Vantagens
- Alta produtividade
- Eficiente em termos de memória e espaço
- Cross-platform
- Personalizável
- Grátis
Pré-requisitos
- Vim instalado
- Exercícios descarregados
Abrir o vim
$ vim
Sair do vim
:q<Enter>
Obrigado a Todos!
Movimento
Movimento Simples
- O vim utiliza teclas fora do comum para movimento do cursor
^
k
< h l >
j
v
Porquê?
Por questões de eficiência
- Mover a mão das setas para as letras demora tempo
- Tempo esse que pode ser dispendido noutro lado
Ex. 1: Movimento Simples
- Abrir o ficheiro de texto "exercise1.txt"
- Seguir as instruções
Outros Movimentos
É possível mover o cursor usando outros movimentos
início de uma palavra (para trás)
w
início da linha
e
início de uma palavra
b
fim de uma palavra
0
fim da linha
$
início do ficheiro
gg
fim do ficheiro
G
início da linha (sem contar com espaços)
_
Ex. 2: Outros Movimentos
- Abrir o ficheiro de texto "exercise2.txt"
- Utilizar os comandos do slide anterior para movimentar o cursor
Mas então,
como se escreve?
Editor Modal
- O vim é modal, isto é, funciona por modos.
- Num editor de texto normal, pressionar uma tecla implica escrever o seu caracter.
Modo Normal
- Modo pré-definido
- Carregar ESC para entrar no modo
- Executa comandos
Modo de Inserção
- Modo de escrita
- Para entrar no modo:
i
Modo Visual
- Modo de seleção visual
- Para entrar no modo:
v
Modo Execução
- Modo de execução de comandos escritos
- Para entrar no modo, escrever a partir do modo normal
:
sair
:q
gravar e sair
:wq
gravar
:w
sair e descartar alterações
:q!
Ex. 3: Modos
- Entrar no modo de inserção
- Escrever texto
- Voltar ao modo normal
- Entrar no modo visual
- Selecionar o texto escrito
- Apagar usando a tecla
- Entrar no modo de execução
- Fechar ficheiro sem guardar alterações
x
Operadores Simples
substituir caracter debaixo do cursor
s
desfazer ação
u
refazer ação
<C-R>
apagar caracter debaixo do cursor
x
colar
p
inserir linha abaixo do cursor
o
Operadores Complexos
Operadores que recebem movimentos ou objetos para especificar o seu comportamento
Operadores Complexos
alterar
c
copiar
y
apagar
d
Objetos Textuais
- São objetos que podem ser selecionados e manipulados
- Exemplos: frases, palavras, etc.
- Começam sempre por:
- a - o objeto em si
- i - dentro do objeto
Objetos Textuais
palavra e espaço seguinte
aw
conteúdo entre aspas
i"
conteúdo entre aspas, incluindo as aspas
a"
palavra
iw
conteúdo dentro de tags XML
i<
conteúdo entre tags XML abertas e fechadas
it
conteúdo e tags XML abertas e fechadas
at
Operações
copiar palavra e espaço seguinte
yaw
alterar conteúdo entre aspas
ci"
apagar conteúdo entre aspas, incluindo as aspas
da"
apagar palavra
diw
copiar conteúdo dentro de tags XML
yi<
selecionar conteúdo entre tags XML abertas e fechadas
vit
alterar conteúdo e tags XML abertas e fechadas
cat
Ex. 4: Operações
Abrir o ficheiro de texto "exercise4.html"
Todos os passos devem ser executados num só comando:
- Corrigir a tag "titulo" para "title"
- Alterar a class da tag "h1" para "hello-world"
- Apagar conteúdo da tag "h1"
- Apagar os parâmetros da função "helloWorld"
- Alterar corpo da função "helloWorld" e colocar o código comentado antes da função
Outros Comandos
substituir por <character> (replace)
r<character>
tornar maiúscula
gU
até encontrar (find) o próximo <character>
f<character>
repetir 2 vezes um comando
2<command>
até ('till) ao próximo <character>
t<character>
até à próxima ocorrência de <regex>
/<regex>
tornar minúscula
gu
Search & Replace
/<regex>
substituir uma ocorrência
?<regex>
pesquisar
n
pesquisar em sentido inverso
*
próxima ocorrência
%s/<regex>/<substitute>
pesquisar palavra debaixo do cursor
substituir todas as ocorrências
%s/<regex>/<substitute>/g
Registos
- Guardam texto
- Identificados com letras
- Guardar num registo:
- Colar de um registo:
"<register>y
"<register>p
Macros
- Macros são comandos guardados que podem ser usados posteriormente
- Iniciar gravação da macro:
- Finalizar gravação:
- Correr macro:
- Correr última macro:
q<register>
q
@<register>
@@
Correr Comandos do Terminal
- Correr comandos do terminal:
- Ver a data de hoje:
- Ver ficheiros no diretório:
:!<command>
:!date
:!ls
Ler de Fontes Exteriores
- Comando permite inserir o resultado do comando seguinte
- Inserir resultado de um comando do terminal:
:r
:r !ls
Buffers, Janelas, Separadores
- Buffer: conteúdo aberto
- Janela: visualização de um buffer
- Separador: conjunto de janelas
Obrigado a Todos!
Copy of Copy of Workshop Vim
By Bernardo Belchior
Copy of Copy of Workshop Vim
- 452