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)
winício da linha
einício de uma palavra
bfim de uma palavra
0fim da linha
$início do ficheiro
ggfim do ficheiro
Giní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:
iModo Visual
- Modo de seleção visual
- Para entrar no modo:
vModo Execução
- Modo de execução de comandos escritos
- Para entrar no modo, escrever a partir do modo normal
:sair
:qgravar e sair
:wqgravar
:wsair 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
xOperadores Simples
substituir caracter debaixo do cursor
sdesfazer ação
urefazer ação
<C-R>apagar caracter debaixo do cursor
xcolar
pinserir linha abaixo do cursor
oOperadores Complexos
Operadores que recebem movimentos ou objetos para especificar o seu comportamento
Operadores Complexos
alterar
ccopiar
yapagar
dObjetos 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
awconteúdo entre aspas
i"conteúdo entre aspas, incluindo as aspas
a"palavra
iwconteúdo dentro de tags XML
i<conteúdo entre tags XML abertas e fechadas
itconteúdo e tags XML abertas e fechadas
atOperações
copiar palavra e espaço seguinte
yawalterar conteúdo entre aspas
ci"apagar conteúdo entre aspas, incluindo as aspas
da"apagar palavra
diwcopiar conteúdo dentro de tags XML
yi<selecionar conteúdo entre tags XML abertas e fechadas
vitalterar conteúdo e tags XML abertas e fechadas
catEx. 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
gUaté 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
guSearch & Replace
/<regex>substituir uma ocorrência
?<regex>pesquisar
npesquisar em sentido inverso
*próxima ocorrência
%s/<regex>/<substitute>pesquisar palavra debaixo do cursor
substituir todas as ocorrências
%s/<regex>/<substitute>/gRegistos
- Guardam texto
- Identificados com letras
- Guardar num registo:
- Colar de um registo:
"<register>y"<register>pMacros
- 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:!lsLer de Fontes Exteriores
- Comando permite inserir o resultado do comando seguinte
- Inserir resultado de um comando do terminal:
:r:r !lsBuffers, 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
- 534