O que é?

Neovim é um editor de texto baseado no Vim que roda via CLI (Linha de comando), com a possibilidade de instala plugins.

Instalar neovim

Executei o comando

$ sudo apt install python3-neovim

no Parrot Sec 4.10 e ele instalou o neovim e os módulos python para ele automaticamente.

A forma mais direta de instalar usando uma distribuição debian-based é com

$ sudo apt install neovim

Para abrir o neovim basta executar o comando nvim no terminal.

Arquivo de configurações do neovim:
~/.config/nvim/init.vim

Uso

O padrão do neovim é baseado no vim, então todos os comandos do vim funcionam no neovim.

O vim possui 2 modos, modo de edição e modo de comando, o modo de edição é o modo onde podemos editar o arquivo, pode ser ativado com a tecla INSERT, e o modo de comando é o modo onde podemos rodar comandos do vim, para ativar o modo comando pressione a tecla ESC.

Todos os comandos do neovim devem ser adicionados após : no buffer do neovim.

Comandos

descriçãocomando
Sair:q
Sair sem salvar:q!
Salvar um arquivo:w
Salvar e sair:wq
Deletar um characterx
Desfazer uma açãou
Procurar uma letra ou palavra/palavra

Atalhos

Alguns atalhos do modo de edição

Ir para o início da linha - home

Ir para o final da linha - end

Navegar para cima e para baixo - Page Up e Page Down

Apagar uma linha - CTRL+U

Instalar Plugins

step-by-step

O gerenciador de plugins que vou usar é o VimPlug.

Configurar nvim para instalar pluggins:

Instale o gerenciador VimPlug:

curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Adicione essas linhas no ~/.config/nvim/init.vim

call plug#begin()
" Your plugins...
call plug#end()

ex:

call plug#begin()
Plug 'roxma/nvim-completion-manager'
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
call plug#end()
Instalar plugins

Você pode encontrar muitos plugins no site VimAwesome. Escolha um e adicione as linhas do plugins entre a função call plug#begin() e call plug#end() no arquivo ~/.config/nvim/init.vim.

call plug#begin()
Plug 'valloric/youcompleteme'
call plug#end()

segundo o padrão Plug 'nomedodesenvolvedor/nomedoplugin'.

depois execute os comandos a seguir no nvim

:PlugInstall
:UpdateRemotePlugins

Meus Plugins

emmet-vim

Download: https://vimawesome.com/plugin/emmet-vim

Plugin Label: 'mattn/emmet-vim'

Usage:

Escreva a abreviação do código, depois aperte CTRL+Y+,.

ex1:

html:5

CTRL+Y+,

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title></title>
  </head>
  <body></body>
</html>

ex2:

div>ul>li*5

CTRL+Y+,

<div>
  <ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
</div>

Additional Config

let g:user_emmet_leader_key='<C-Z>' " remap keybind to CTRL+Z+,
jedi-vim

Download: https://vimawesome.com/plugin/jedi-vim

Plugin Label: 'davidhalter/jedi-vim'

Usage:
Autocomplete de padrões de código

AutoClose

Download: https://vimawesome.com/plugin/autoclose

Plugin Label: 'townk/vim-autoclose'

Usage:
Fecha alguns caracteres de escopo automaticamente, como (), [], , '', ""...

vim-closetag

Download: https://vimawesome.com/plugin/vim-closetag

Plugin Label: 'alvan/vim-closetag'

Usage: Auto completa tags HTML

tabnine-vim

Download: https://www.tabnine.com/install

Plugin Label: 'zxqfl/tabnine-vim'

Usage: IA para prever textos e oferecer um autocomplete inteligente

vim-workspace

Download: https://vimawesome.com/plugin/vim-workspace

Plugin Label: 'thaerkh/vim-workspace'

Usage: Disponibiliza funcionalidades interessantes, mas eu uso so o autosave, porque é o único que sei usar

Additional Config:

let g:workspace_autosave_always = 1
vim-airline

Download: https://vimawesome.com/plugin/vim-airline-superman

Plugin Label: 'vim-airline/vim-airline'

Usage: Exibe uma barra de status com informações sobre a branch atual, tipo de arquivo, modo de edição, êtc... brabo demais.

vim-wakatime

Download: https://wakatime.com/vim

Plugin Label: 'wakatime/vim-wakatime'

Usage: Disponibiliza uma dashboard com estatísticas de tempo em uma determinada linguagem, projeto, editor...
Tudo isso no site da Wakatime

editorconfig-vim

Download: https://github.com/editorconfig/editorconfig-vim

Plugin Label: 'editorconfig/editorconfig-vim'

Usage: Padroniza configuração de editores através do arquivo .editorconfig


referencias:

Installing Neovim: https://github.com/neovim/neovim/wiki/Installing-Neovim [archive]

How to find a Word in Vim or vi text editor: https://www.cyberciti.biz/faq/find-a-word-in-vim-or-vi-text-editor/ [archive]

How to Install NeoVim and Plugins with vim-plug: https://www.linode.com/docs/guides/how-to-install-neovim-and-plugins-with-vim-plug/ [archive]