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
$ 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
$ 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ção | comando |
---|---|
Sair | :q |
Sair sem salvar | :q! |
Salvar um arquivo | :w |
Salvar e sair | :wq |
Deletar um character | x |
Desfazer uma ação | u |
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
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()
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()
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()
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
html:5
CTRL+Y+,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title></title>
</head>
<body></body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title></title>
</head>
<body></body>
</html>
ex2:
div>ul>li*5
div>ul>li*5
CTRL+Y+,
<div>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<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+,
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
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]