Flash
ranger
Igual vim para movimentação h,j,k,l, pode usar as setas.
Direita home, conteúdo, local em foco - colunas
r - sob o arquivo para escolher qual programa abrirá
yy, pp, dd - para copiar e colar
Space - para selecionar diretórios e/ou arquivos
:mkdir - para criar um diretório
:delete - para deletar diretório e/ou arquivo
s - abre o shell no ranger :shell cat file.txt
S - abre o shell no diretório corrente
Ctrl + N ou gn - abre nova aba
Ctrl + W ou gc - fecha aba
gt, gT - navega entre abas igual ao vim
Ctrl + L - ajusta a tela
Ctrl + R - recarrega o ranger
cw - renomear arquivo:w
z - abre painel
zh - mostra ocultos
o - modifica ordenação
nvim/vim
Referências
canal-yt-eustaquio-rangel-archive
conhecendo-o-editor-vim-eustaqio-rangel
criar-ambiente-de-desenvolvimento-vim-neovim-lissa-ferreira
viva-o-linux-correcao-ortografica-vim-neovim-fabio-berbert
viva-o-linux-correcao-ortografica-vim-neovim-sandro
baeldung-linux-search-and-replace-vim-neovim
Modos
Normal - para deletar, copiar, formatar e afins
Inserção - para digitação de texto
Visual - para selecionar linhas e blocos
Comando - para digitar comandos no editor
Configurações
~/.config/nvim/init.vim - /home para configurar o editor de texto
~/.vim/ - para adicionar plugins e mais configurações
Atalhos
Movimentação
h - esquerda
j - baixo
k - cima
l - direita
w - vai para início da próxima palavra
e - vai para fim da palavra atual/próxima
b - volta para o início da palavra anterior
} - próximo parágrafo
{ - parágrafo anterior
]] - próximo início de bloco
[[ - início do bloco anterior
]] - fim do próximo bloco
]] - fim do bloco anterior
]m - próxima função/método
[m - função anterior
d (delete) - d} apaga até o próximo parágrafo
y (yank/copiar) - y} copia o parágrafo
v (visual) - v} seleciona até o próximo parágrafo
Copiar e colar
y - copiar
p - colar
Expressões regulares
Remover \n - :g/^\s*$/d uso global - :%s/^\s*$\n//gc só no arquivo -
:g/^$/d_ - global
Magic Mode para expressões regulares
/v
sem magic mode
%s/\(\w\+\) \(\w\+\)/\2 \1/g
com magic mode
%s/\v(\w+) (\w+)/\2 \1/g
copia para registrador
"hy - copiar para registrador h
"hp - colar do registrador h
5"hp - colar 5x do registrador h
Localizar e substituir
Remover acentos grave por til
:%s/```/\~\~\~/gc
Remover de forma alternativa
:%s/```/\=repeat('~',3)/gc
Macros
Começar a gravar: <ESC>q<registrador>
Parar a gravação: <ESC>qq
Repetir gravação: <ESC>@<registrador>
Repetir a gravação várias vezes: <ESC><número>@<registrador>
t - no modo visual até o próximo caractere
, - previous
U - converte para uppercase
Navegação no terminal
set -o vi - comandos do vi no terminal
Organização do .init.vim
source ~/.vim/custom/gui.vim - trecho de configuração
set listchars=tab:→\ ,trail: ·,extends:>,precedes:<
-
tab -: dois caracteres, um ara a tab e outro para ocupar o espaço da tab
-
trail: caractere para espaços extrair (sobrando no final de linha)
-
extends: mostra quando wrap está desligado e a linha excede o limite
-
precedes: mostra quando wrap está desligado e tem texto antes
Chamar em ~/.config/nivm/init.vim:
bash " sources {{{ source ~/.vim/custom/gui.vim " }}}
Backup
Arquivos swap
set nobackup - não mantém arquivos .swp
set writebackup - cria um arquivo de backup quando sobrescreve
Trabalhando com vários arquivos
:e nome.do.arquivo.rb - abre o arquivo
:sp README.md - split horizontal
Teclas de movimentação para trocar entre split Ctrl + w tecla de movimentação
(k) - move para o split superior
:sv LICENSE.md - split vertical
Abas
tabnew nome.do.arquivo.rb - abre arquivo em uma aba
gt - navega para aba a frente
gT - navega para a aba atrás
Buffers
:bn - move para o próximo buffer
:bp - move para o buffer anterior
:bfirst - move para o primeiro buffer
:blast - move para o último buffer
Debug de teclas
Ctrl + V - apertar essas teclas e depois a tecla que deseja, resultado:
<C-Right>
Sessões
map ms :mksession! ~/.vim/custom/session.vim<CR> - grava a sessão
map rs :source ~/.vim/custom/session.vim<CR> - recupera a sessão
Correção ortográfica
Configuração em init.vim
nnoremap <leader>in :set spell spelllang=en_us<CR>
nnoremap <leader>pt :set spell spelllang=pt_br<CR>
nnoremap <leader>es :set spell spelllang=es<CR>
nnoremap <leader>soff :set nospell<CR>
]s - vai para a próxima palavra a corrigir
[s - vai para a palavra anterior a corrigir
z= - ver sugestão para corrigir
Ctrl + x s - modo de inserção
Plugins
Polêmica sobre gerenciadores de plugins
Uso do vim-plug
Formatação
:%!jq . - JSON pretty no arquivo corrente
qutebrowser
Browser amigável com suporte a navegação via teclado.
Referências
Atalhos com base no Vim.
hjkl - navegação similar as setas
+ e - - para zoom
yy - copiar URL
yY - copiar URL para seleção
yt - copiar título
Navegação entre abas
J - próxima aba
K - aba anterior
<Alt-num> - alterna para numeração da aba
d - fecha a aba corrente
u - desfaz o fechamento da aba
Navegação de páginas
H e L - para voltar ou avançar no histórico
f - mostrar atalhos
o - abrir barra de pesquisa para ir a nova URL
go - editar a URL corrente
th - volta 1 página
wh - avança 1 página
R - recarrega página
:open -t - abre URL em nova aba
:open -w - abre URL em nova janela
:open -p - abre URL em modo privado
server
Comandos úteis
Monitorar o docker
watch -t -n 5 'echo "--- CONTAINERS ---"; sudo docker ps -a; \
echo "\n--- IMAGENS ---"; sudo docker images; \
echo "\n--- VOLUMES ---"; sudo docker volume ls; \
echo "\n--- REDES ---"; sudo docker network ls'
Removendo containers
- parar
sudo docker stop $(sudo docker ps -q) 2>/dev/null
- remover
docker rm $(sudo docker ps -aq) 2>/dev/null
docker compose down --rmi all -v
- apagar volumes
docker volume prune
Ajuste VPS
- uso do
docker swarmideal para produção
docker swarm init --advertise-addr=<IP da VPS>
- fazer outro worker
docker swarm join --token \
SWMTKN-1-59ujrj6rp319lk67e8tx7tomy4vx99ul183ezf9nfhag3rcxvt-5e20lmgqv8a9zytu9ajr9wn0s \
127.0.0.1:2377
- manager
To add a manager to this swarm, run 'docker swarm join-token manager' and \
follow the instructions.
Criação 2 redes, uma para produção e outra para isolar as aplicações do ambiente externo
- rede do traefik
docker network create --driver=overlay traefik_public
docker network create --driver=overlay app_network
Portainer
portainer.yml
Ajustar os domínios DNS (Cloudflare) e rodar o comando:
docker stack deploy -c portainer.yml portainer
Traefik
traefik.yml
Dentro do Portainer, stacks -> add -> adicionar o .yml -> desligar access control
Fazer o deploy novamente do Portainer via linha de comando, será necessário
comentar as portas e remover o comentário nas labels do traefik.
Para portainer.yml
docker stack deploy -c portainer.yml portainer
Postgres
postgres.yml
others
Mise
mise - alternativa melhor ao asdf
Ruby dependências para o asdf
sudo apt update \
sudo apt install -y \
build-essential \
libssl-dev \
libreadline-dev \
zlib1g-dev \
libffi-dev \
libsqlite3-dev \
libyaml-dev \
libgdbm-dev \
libncurses5-dev \
libncursesw5-dev \
libtool \
bison \
autoconf \
pkg-config \
curl \
git \
wget \
xz-utils \
libbz2-dev \
liblzma-dev \
libgmp-dev \
libffi-dev \
tk-dev
Python dependências para o asdf
sudo apt install -y \
build-essential \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
libncursesw5-dev \
xz-utils \
tk-dev \
libxml2-dev \
libxmlsec1-dev \
libffi-dev \
liblzma-dev