voyeg3r

nvim float term

Aug 29th, 2026
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.34 KB | Source Code | 0 0
  1. # Terminal flutuante com transparência no Neovim (snacks.nvim)
  2.  
  3. Pré-requisitos: Neovim ≥ 0.12, lazy.nvim e snacks.nvim instalados.
  4.  
  5. ## 1. Config do plugin (`lua/plugins/snacks.lua`)
  6.  
  7. Bloco `terminal` com janela flutuante e `winblend` (transparência):
  8.  
  9. ```lua
  10. terminal = {
  11.   enabled = true,
  12.   auto_insert = true,
  13.   win = {
  14.     position = 'float',
  15.     border = 'rounded',
  16.     wo = { winbar = '', winblend = 20 },
  17.   },
  18. },
  19. ```
  20.  
  21. - `position = 'float'` → abre como janela flutuante centralizada (sem isso, o snacks abre como split abaixo quando não há comando).
  22. - `winblend = 20` → transparência (0 = opaco, 100 = invisível). Ajuste conforme o gosto (ex.: 40 para um efeito "vidro" mais forte).
  23. - `border = 'rounded'` → borda arredondada, combinando com os pickers.
  24.  
  25. ## 2. Atalhos (`lua/core/keymaps.lua`)
  26.  
  27. `<C-t>` abre **e** oculta (toggle), tanto no modo normal quanto vindo de dentro do próprio terminal:
  28.  
  29. ```lua
  30. map('n', '<C-t>', function() require('snacks').terminal.toggle() end, { desc = 'Toggle terminal' })
  31. map('t', '<C-t>', function() require('snacks').terminal.toggle() end, { desc = 'Toggle terminal' })
  32. ```
  33.  
  34. ## 3. Fechando o terminal: o atalho `Ctrl-D` que quase ninguém conhece
  35.  
  36. No modo terminal do Neovim, `<C-d>` envia **EOF** para o shell (equivalente a "sinalizar fim de entrada" / logout), encerrando o processo — e o snacks, com `auto_close`, esconde a janela automaticamente.
  37.  
  38. Muitos usuários Linux só conhecem `<C-c>`, mas os dois são diferentes:
  39.  
  40. | Atalho  | Sinal    | Efeito                                               |
  41. | ------- | -------- | ---------------------------------------------------- |
  42. | `<C-c>` | `SIGINT` | Cancela o **comando em execução**; o shell continua. |
  43. | `<C-d>` | `EOF`    | Fim de entrada; o **shell encerra** e a janela some. |
  44.  
  45. Ou seja: `<C-c>` interrompe o que está rodando na frente, mas deixa o terminal aberto; `<C-d>` "desconecta" de fato e fecha a sessão do shell. É o mesmo comportamento do terminal fora do Neovim (experimente `<C-d>` no seu bash normal — ele te desloga).
  46.  
  47. ## 4. Validando
  48.  
  49. ```bash
  50. luacheck lua/plugins/snacks.lua lua/core/keymaps.lua
  51. nvim --headless "+Lazy! load all" +qa
  52. ```
  53.  
  54. Abra o Neovim e pressione `<C-t>`: o terminal flutuante e translúcido aparece. Pressione `<C-t>` de novo (dentro dele) para ocultar, ou `<C-d>` para fechar.
  55.  
Advertisement
Add Comment
Please, Sign In to add comment