Atalhos

https://vim.rtorr.com/: cheat sheet i: insert mode o: insert mode (next line) u: undo desfazer dd: deletar linha /: procurar (case sensitive) ^: inicio da linha gg: Início do Documento G: Fim do Documento D: Deletar do _ até o fim da linha dw x: Deletar Palavra e Depois a Vírgula ou Ponto dG: Deletar todo conteúdo do arquivo 0 / $: Início / Fim da Linha ~: swap case a: mudar para insert DEPOIS CURSOR (AFTER) shift + a: mudar para o insert no fim da linha i: insert mode (ANTES CURSOR _) shift + i: mudar para insert no início da linha zt: mover cursor par o topo w: ‘words’ mover entre as palavras p/ frente b: ‘back’ mover entre as palavra p/ trás daw: ‘delete a word’ deletar uma palavra caw: ‘delete a word’ deletar uma palavra e entrar no insert mode x: deletar uma letra

Configs

:set number / nonumber | Ativar/Desativar Números de Linhas

Search and Replace

/search and enter :%s/foo/bar/g => Foo por Bar em todo o documento :g/pattern => Procurar pela pattern em regex

Remove all Empty Lines

:g/^\s*$/d \

Comandos Úteis

Adicionar uma variável numérica depois de cada texto em cada linha

Problema: Um bloco de multiplas variáveis com o mesmo nome em que eu precisaria adicionar query1, query2, query3 …

””” query = query_engine.query(“…”) query = query_engine.query(“…”) query = query_engine.query(“…”) query = query_engine.query(“…”) query = query_engine.query(“…”) query = query_engine.query(“…”) “””

Solução: no VIM criar uma variável e adicionar uma busca Regex com um looping somando à variável:

:let i=1 | g/query /s//\='query'.i / | let i=i+1

Remover todo o texto entre parênteses

Problema: Um bloco cheio de strings que precisamos transformar em “outra coisa”, qualquer coisa, como tirar esse monte de “coisas ao redor desta string e concatenar com uma resposta da própria variável, em resumo ficando query1 = console.log(string1 + query1)

””” query1 = query_engine.query(“Qual data de nascimento do Paulo?”) query3 = query_engine.query(“CPF Paulo?”) query4 = query_engine.query(“Qual idade do Paulo?”)

query5 = query_engine.query(“Qual data de nascimento do João?”) query7 = query_engine.query(“CPF João?”) query8 = query_engine.query(“Qual idade do João?”)

query9 = query_engine.query(“Qual data de nascimento do Maria?”) query10 = query_engine.query(“Nascimento do Maria?”) query11 = query_engine.query(“CPF Maria?”) query12 = query_engine.query(“Qual idade do Maria?”) “””

Solução: :14,27 s/.*"\(.*\)".*/\1/g

  1. :14,27 significa que estou selecionando apenas aquelas linhas, senão há outros blocos de código que serão afetados;
  2. troquei o %s porque eu já estava usando o delimitador de linhas. Caso fosse em todo documento seria somente %s;
  3. /.”(.)”./: This is the pattern that Vim is searching for. The . matches any character (except a newline) 0 or more times. The “(.)” part is a capturing group, which matches anything enclosed in double quotes. The . inside the parentheses matches any character (except a newline) 0 or more times. So, this pattern will match any line that has text enclosed in double quotes.
  4. /\1/: This is the replacement pattern. \1 refers to the first capturing group in the search pattern. In this case, it’s whatever text was found inside the double quotes.
  5. g: This is a flag that tells Vim to apply the replacement globally on each line, i.e., it replaces all occurrences in the line, not just the first one.

ToDo

ToDo

D => deletar linha do ponto x até o final (insert) dd => deletar toda a linha ? => deletar todo o conteúdo ? => procurar termo em todos arquivos da pasta atual ? => aprender e melhorar navegação do arquivo