Плагины Neovim для улучшения рабочего процесса разработки.
Обзор
В предыдущей статье я рассказал о новых фреймворках завершения Neovim, которые стоит попробовать. Давайте рассмотрим новые плагины Neovim, которые могут улучшить наш рабочий процесс в этой статье!
SnipRun
В Emacs есть org-mode и org-babel, которые позволяют нам запускать код в интерактивном режиме. Я ищу простое решение для Neovim и считаю, что SnipRun пригодится.
SnipRun - это плагин для запуска кода для Neovim, написанный на Lua и Rust. Он нацелен на глупо быстрое тестирование частичного кода для интерпретируемых и скомпилированных языков. Он стирает грань между стандартным рабочим процессом сохранения и запуска, записной книжкой, подобной Jupyter, и REPL / интерпретаторами.
Чтобы установить его с помощью packer.nvim
,
use { "michaelb/sniprun", run = "bash install.sh", config = function() require("config.sniprun").setup() end, }
Я настраиваю его для отображения результатов в области командной строки в виде виртуального текста и в плавающем окне.
local M = {} function M.setup() require("sniprun").setup { display = { "Classic", "VirtualTextOk", "TempFloatingWindow", }, } end return M
Подобные плагины,
- Magma-nvim для интерактивного запуска кода с Jupyter.
- Codi.vim - интерактивный блокнот для хакеров.
- Vim-slime, который захватывает текст и отправляет его целевому объекту, например GNU Screen, tmux или Vim Terminal.
null-ls.nvim
Null-ls.nvim позволяет нам использовать Neovim в качестве языкового сервера для внедрения диагностики LSP, действий кода и многого другого через Lua.
В моем случае я использую его для дополнения функций, отсутствующих на некоторых языковых серверах, например для поддержки форматирования кода на некоторых языках, таких как Lua и Python.
Чтобы установить его с помощью packer.nvim
,
use { "jose-elias-alvarez/null-ls.nvim", requires = { "nvim-lua/plenary.nvim", "neovim/nvim-lspconfig"}, }
Для форматирования кода настраиваю
prettier
для файлов HTML, CSS и Javascriptstylua
для файлов Luablack
иisort
для файлов Python
Для диагностики настраиваю
write_good
для Markdown и текстовых файловflake8
для файлов Python
Для кодовых действий настраиваю gitsigns
Я также настраиваю theauto command
для автоматического форматирования буфера.
В строке состояния я настраиваю его для отображения подключенных языковых серверов. Например. на приведенном ниже экране вы можете видеть, что к текущему буферу прикреплены pyright
и null-ls
.
Подобные плагины,
Неорг
Neorg - это новый плагин для создания заметок, который я использую. Он легко интегрируется с treesitter
и nvim-cmp
и имеет измененный формат org
.
Установка требует нескольких шагов. Например. установить с помощьюpacker.nvim
,
use { "vhyrro/neorg", config = function() require("config.neorg").setup() end, requires = "nvim-lua/plenary.nvim", }
А ниже - конфигурация Lua,
Затем мне нужно настроить парсер treeitter.
Затем выполните :TSInstall norg
.
Для завершения добавляю исходник в nvim-cmp
конфигурации.
sources = { ... { name = "neorg" } }
После завершения установки мы готовы использовать Neorg.
Подобные плагины,
Прочтите эту статью, чтобы узнать о других плагинах, которые вы можете использовать.
Авто-сессия + сессия-линза
Раньше я использовал довольно много плагинов для управления сессиями. Сейчас я использую комбинацию автосессия и сессия-линза. Он легко интегрируется с telescope.nvim
, что упрощает переключение сеансов.
use { "rmagatti/session-lens", requires = { "rmagatti/auto-session", "nvim-telescope/telescope.nvim" }, config = function() require("config.auto-session").setup {} require("session-lens").setup {} end, }
nvim-lsp-ts-utils
Nvim-lsp-ts-utils улучшает возможности разработки TypeScript для встроенного клиента LSP Neovim.
После настройки вы можете использовать его для
- организовать импорт (
:TSLspOrganize
) - переименовать файл и обновить импорт (
:TSLspRenameFile
) - импортировать все отсутствующие импорты (
:TSLspImportAll
) - импорт по завершении
Этот плагин также интегрируется с null-ls.nvim для обеспечения действий кода ESLint, диагностики и форматирования.
Для установки вам необходимо настроить его в рамках настройки языкового сервера.
Конфигурационные файлы, которые я использовал, можно найти в этом репозитории.
Ознакомьтесь со всеми статьями Vim / Neovim в разделе Практический способ изучения Neovim.
Вы также можете прочитать эти статьи!
Если вы еще не являетесь участником Medium и хотите им стать, нажмите здесь. (Часть вашей абонентской платы будет использована для поддержки alpha2phi.)