Flash

ranger

nvim/vim

qutebrowser

server

others

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

blog-dois-pontos-vim-parte-01

blog-dois-pontos-vim-parte-02

blog-dois-pontos-vim-parte-03

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

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

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:<

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

qutebrowser-quickstart

qutebrowser-practice-game

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

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

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

sudo docker stop $(sudo docker ps -q) 2>/dev/null
docker rm $(sudo docker ps -aq) 2>/dev/null
docker compose down --rmi all -v
docker volume prune

Ajuste VPS

docker swarm init --advertise-addr=<IP da VPS>
docker swarm join --token \
SWMTKN-1-59ujrj6rp319lk67e8tx7tomy4vx99ul183ezf9nfhag3rcxvt-5e20lmgqv8a9zytu9ajr9wn0s \
127.0.0.1:2377
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

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