Três recursos simples mudam completamente a experiência de edição no Vim: o destaque da linha atual (cursorline), os números relativos (relativenumber) e a transparência do fundo. Este guia explica como cada um funciona, como personalizar as cores e o que muda entre o GNOME Terminal e o Ptyxis.
Conceito-chave: no Vim de terminal não existe transparência por camada (alpha) — o Vim não consegue deixar só a linha atual translúcida. A transparência é sempre do emulador de terminal; o Vim apenas "não pinta" o fundo (
ctermbg=NONE) e deixa o terminal aparecer por baixo.
cursorlineset cursorline " ativa o realce da linha onde está o cursor
set cursorlineopt=both " Vim 8.2+: aplica o destaque à linha E ao número
O cursorlineopt (Vim 8.2+ / Neovim) define o que é destacado:
| Valor | Efeito |
|---|---|
line |
Apenas a linha (padrão) |
number |
Apenas o número da linha atual — indicador discreto, sem pintar a linha |
both |
Linha e número (recomendado) |
| Comando | Efeito |
|---|---|
set number |
Números absolutos (1, 2, 3...) |
set relativenumber |
Números mostram a distância até o cursor |
| os dois juntos | Modo híbrido: linha atual mostra o número absoluto; as demais, a distância |
Modo híbrido (cursor na linha 10):
2 linha 8
1 linha 9
10 linha 10 <- número real do arquivo
1 linha 11
2 linha 12
O modo híbrido é o preferido de quem edita rápido: você sabe onde está e quantas teclas faltam para o alvo (7j, d4k, y3j). Para ligar/desligar sem editar o .vimrc: :set relativenumber!.
| Grupo | Controla |
|---|---|
CursorLine |
Fundo da linha atual inteira |
CursorLineNr |
Cor do número da linha atual |
LineNr |
Cor de todos os outros números |
Sintaxe no terminal: ctermbg (fundo) e ctermfg (texto) aceitam cores de 0 a 255; cterm=bold para negrito. No gVim, use guibg=#RRGGBB / guifg=#RRGGBB. Sobre a paleta de 256 cores e o suporte a true color, veja o guia PS1 e cores no terminal.
Teste ao vivo (sem salvar nem reiniciar):
:highlight CursorLine ctermbg=236
:highlight CursorLineNr ctermfg=196 cterm=bold
:highlight LineNr ctermfg=2
Referência rápida de cores: vermelho 196, verde 46, azul 21, amarelo 226, laranja 208, rosa 201; cinzas escuros vão de 233 (quase preto) a 239. Para listar todas no terminal:
for i in {0..255}; do echo -e "\033[38;5;${i}mCor $i\033[0m"; done
O Vim é agnóstico ao terminal: ctermbg=NONE significa "não pinte fundo aqui". Quem produz a transparência é o emulador — e a configuração muda conforme a versão do Ubuntu (detalhes no guia Personalização de Terminal):
opacity 0.85 = 85% opaco) e reinicie o terminal:# Opacidade do perfil padrão do Ptyxis (instalação nativa)
gsettings set org.gnome.Ptyxis.Profile:/org/gnome/Ptyxis/Profiles/$(gsettings get org.gnome.Ptyxis default-profile-uuid | tr -d "'")/ opacity 0.85
Transparência seletiva no Vim: se você quer o fundo geral opaco e só a linha atual "furada" (mostrando o wallpaper), não use highlight Normal ctermbg=NONE — deixe o Normal com o padrão do tema e aplique NONE apenas na CursorLine.
~/.vimrc" ============================================================
" Linha atual, números e transparência no Vim
" ============================================================
" Números híbridos (absoluto + relativo)
set number
set relativenumber
" Destaque da linha atual (linha + número)
set cursorline
set cursorlineopt=both
" Fundo da linha atual — escolha UMA opção:
highlight CursorLine ctermbg=NONE " A: transparente (mostra o fundo do terminal)
" highlight CursorLine ctermbg=235 " B: cinza escuro sutil (terminal opaco, fundo escuro)
" highlight CursorLine ctermbg=254 " C: cinza claríssimo (terminal opaco, fundo claro)
" Número da linha atual: laranja em negrito
highlight CursorLineNr ctermfg=208 ctermbg=NONE cterm=bold
" Demais números: cinza discreto
highlight LineNr ctermfg=240 ctermbg=NONE
" (Opcional) Fundo geral transparente — só ative se o terminal
" estiver com transparência ligada e você quiser o Vim inteiro translúcido
" highlight Normal ctermbg=NONE guibg=NONE
" highlight NonText ctermbg=NONE guibg=NONE
Se
cursorlineoptder erro de "opção desconhecida", seu Vim é anterior ao 8.2 — remova a linha; oCursorLineNrcontinua funcionando (o destaque do número segue o da linha).
| Comando | Ação |
|---|---|
5j / 3k |
Desce 5 / sobe 3 linhas |
d4j |
Apaga da atual até 4 linhas abaixo |
y7k |
Copia da atual até 7 linhas acima |
=10j |
Reindenta da atual até 10 linhas abaixo |
:help 'cursorline' e :help 'cursorlineopt' — documentação oficial do Vim:help 'relativenumber' — modo relativo e híbrido:help highlight-groups — grupos CursorLine, CursorLineNr e LineNr