После 5 лет использования VSCode я решил перейти на Neovim. Вот мой опыт, конфиги и полезные советы.
1 Установка и базовый конфиг
Установка на Arch Linux:
sudo pacman -S neovim
Базовый конфиг ~/.config/nvim/init.vim:
" Настройки
set number
set relativenumber
set tabstop=4
set shiftwidth=4
set expandtab
set smartindent
set mouse=a
" Клавиши
nnoremap <space> :
let mapleader = " "
" Плагины (будем устанавливать позже)
call plug#begin('~/.vim/plugged')
call plug#end()
3 Установка менеджера плагинов
Я выбрал vim-plug. Установка:
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
После установки запустите :PlugInstall в Neovim.
7 Мои must-have плагины
nvim-treesitter
Улучшенное выделение синтаксиса
telescope.nvim
Файловый поиск и многое другое
lualine.nvim
Красивая статусная строка
nvim-cmp
Автодополнение кода
nvim-lspconfig
Интеграция с LSP
gitsigns.nvim
Интеграция с Git
10 Настройка LSP
Для Python разработки:
" LSP config
lua << EOF
require'lspconfig'.pyright.setup{}
EOF
" Автодополнение
autocmd BufEnter * lua require'cmp'.setup.buffer { sources = { { name = 'nvim_lsp' } } }
Установите серверы LSP:
npm install -g pyright
sudo pacman -S python-lsp-server
15 Полезные keybindings
" Перемещение между окнами
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
" Поиск файлов с Telescope
nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
" Git
nnoremap <leader>gs <cmd>Gitsigns stage_hunk<cr>
nnoremap <leader>gr <cmd>Gitsigns reset_hunk<cr>
20 Настройка внешнего вида
Моя тема - gruvbox. Установка:
Plug 'morhetz/gruvbox'
" В init.vim
colorscheme gruvbox
set background=dark
Конфиг lualine:
lua << EOF
require('lualine').setup {
options = {
theme = 'gruvbox',
section_separators = { left = '', right = '' },
component_separators = { left = '', right = '' }
}
}
EOF
30 Итоги
Плюсы:
- Невероятная скорость работы
- Полный контроль над редактором
- Минимальное потребление ресурсов
- Работает везде (даже по SSH)
Минусы:
- Крутая кривая обучения
- Требуется время на настройку
- Нет встроенной интеграции с некоторыми инструментами
Вывод: Neovim стал моим основным редактором. Для больших проектов иногда возвращаюсь к VSCode, но 90% работы теперь делаю в Neovim.
Мой текущий конфиг
Полный конфиг доступен на GitHub: Конфиг
Назад к блогу