Хотите настроить Neovim по своему вкусу, но не знаете, с чего начать? Я могу помочь вам с этим. Я собираюсь поделиться с вами списком плагинов, которые многие люди в сообществе Neovim часто используют.
Весь код конфигурации, который я покажу в этом руководстве, будет находиться в этом репозитории: nvim-starter — ветка: 02-opinionated.
- Требования
- Как установить плагин?
- Менеджер плагинов
- Плагины
- Токионайт
- onedark.vim
- darkplus.nvim
- monokai.nvim
- nvim-web-devicons
- Луалин
- Буферная линия
- indent-blankline.nvim
- Treesitter
- nvim-treesitter-textobjects
- targets.vim
- Комментарий.nvim
- vim-surround
- nvim-tree
- Телескоп
- телескоп-фзф-натив
- Toggleterm
- vim-fugitive
- Gitsigns
- Пленарное заседание
- vim-repeat
- editorconfig
- vim-bbye
- Что дальше?
- Где еще вы можете найти плагины?
- Заключение
Требования
Если вы совсем новичок в Neovim, я рекомендую вам изучить синтаксис lua. Вам не нужно знать все или владеть языком, по крайней мере, у вас под рукой должен быть справочник по синтаксису, чтобы знать, что является допустимым. Почти все плагины, которые я представлю, настроены на этом языке.
Если вы еще не создали конфигурационный файл для Neovim, сделайте это сейчас. Вот руководство со всем, что вам нужно знать: Как создать свою первую конфигурацию Neovim с помощью lua.
Я рекомендую вам загрузить последнюю стабильную версию Neovim. Вы можете загрузить его из раздела релизов на github. С этого момента я буду считать, что вы используете версию 0.7.2.
Как установить плагин?
Первое, что вам нужно знать, это как установить плагин вручную. Единственное, что нам нужно для установки плагина, это загрузить его в определенное место.
Традиционный способ узнать доступные каталоги для наших плагинов — это использование этой команды.
:set packpath?
Neovim отображает список, разделенный запятыми. Я нахожу этот формат трудным для чтения. Мы можем добиться большего, используя возможности lua.
:lua vim.tbl_map(print, vim.opt.packpath:get())
При этом Neovim покажет вам тот же список, но каждый каталог будет показан в одной строке.
В одной из этих директорий мы должны создать папку pack
, а внутри pack мы должны создать «пакет». Пакет — это папка, содержащая несколько плагинов. Он должен иметь такую структуру.
carpeta-paquete
├── opt
│ ├── [plugin 1]
│ └── [plugin 2]
└── start
├── [plugin 3]
└── [plugin 4]
В этом примере мы создаем папку, содержащую две папки: opt
и start
. Все плагины в opt
будут необязательными, Neovim не будет загружать никакие плагины, пока мы не вызовем их командой packadd
. Плагины в start
будут загружены автоматически в процессе инициализации Neovim.
Предположим, что у нас есть этот каталог в нашем packpath
.
/home/dev/.local/share/nvim/site
Перед установкой плагина мы должны создать папку pack
. И внутри пакета мы создаем пакет. В данном примере наш пакет будет называться github
. Затем путь, по которому мы будем устанавливать плагины, будет таким.
/home/dev/.local/share/nvim/site/pack/github
У нас все готово. Теперь предположим, что мы хотим установить lualine, нам просто нужно загрузить его по этому пути.
/home/dev/.local/share/nvim/site/pack/github/start/lualine.nvim
И это все. Ну… мы должны настроить плагин, но это уже другая история.
Для получения более подробной информации о пакетах в Neovim ознакомьтесь с документацией.
:help packages
Менеджер плагинов
Но, конечно, вам не придется загружать плагины вручную, если вы этого не хотите. Вы можете автоматизировать весь процесс с помощью менеджера плагинов.
В настоящее время это самые популярные обработчики плагинов в экосистеме Neovim.
- packer.nvim
- paq.nvim
Если вы предпочитаете минимализм, я рекомендую paq
. Если вам нужно что-то более «полное», используйте packer.nvim
.
Не забудьте прочитать инструкцию к хендлеру, который вы решили использовать.
Плагины
Токионайт
Github: folke/tokyonight.nvim
Потому что первое, что вы должны сделать при установке Neovim, это изменить тему по умолчанию. Для применения темы мы используем команду colorscheme
, за которой следует название темы.
Для выполнения команд из lua мы используем vim.cmd
. Поэтому, если мы хотим применить тему, мы должны сделать следующее.
vim.cmd('colorscheme nombre-tema')
Чтобы использовать tokyonight, выполните следующую команду.
colorscheme tokyonight
onedark.vim
Github: joshdick/onedark.vim
Адаптация стандартной темы редактора Atom.
colorscheme onedark
darkplus.nvim
Github: lunarvim/darkplus.nvim
Адаптация темы редактора VSCode по умолчанию.
colorscheme darkplus
monokai.nvim
Github: tanvirtin/monokai.nvim
Адаптация стандартной темы редактора Sublime Text.
colorscheme monokai
nvim-web-devicons
Github: kyazdani42/nvim-web-devicons
Внутри этого плагина находится набор функций, которые помогают отображать иконки. Обычно мы не взаимодействуем напрямую с этим плагином. Это зависимость, которую другие плагины используют для отображения иконок.
Самого по себе этого недостаточно для отображения иконок в терминале, необходимо установить шрифт, который уже имеет поддержку иконок. Вы можете найти хорошую коллекцию шрифтов на сайте nerdfonts.com.
Луалин
Github: nvim-lualine/lualine.nvim
Обеспечивает привлекательную «линию состояния». В строке состояния мы видим тип файла, местоположение курсора и тому подобное. Луалин улучшает вид строки состояния, а также добавляет в нее больше информации.
Чтобы начать его использовать, достаточно вызвать функцию .setup()
модуля lualine
.
require('lualine').setup({})
В документации есть раздел, в котором показана конфигурация по умолчанию.
:help lualine-Default-configuration
Теперь, если мы хотим настроить его, мы должны добавить интересующие нас свойства в аргумент функции .setup()
.
vim.opt.showmode = false
require('lualine').setup({
options = {
theme = 'onedark',
icons_enabled = true,
component_separators = '|',
section_separators = '',
},
})
В этом примере первое, что мы делаем, это отключаем опцию Neovim showmode
, потому что lualine уже показывает нам, в каком режиме мы находимся.
И вот что мы имеем в .setup()
.
-
options.theme
: Определяет, какую тему будет использовать Lualine. Вы можете изменить значениеonedark
на любую из доступных тем. -
options.icons_enabled
: Определяет, может ли lualine использовать иконки. Значениеtrue
используется для включения иконок,false
— наоборот. -
options.component_separators
: Это символ, который будет использоваться для разделения «компонентов» луалина. -
options.section_separators
: Символ, который будет использоваться для разделения разделов.
Буферная линия
Github: akinsho/bufferline.nvim
В Neovim вкладки подобны рабочим пространствам, вы можете отображать несколько файлов на вкладке и даже менять рабочий каталог на вкладке. Некоторые предпочитают показывать по одному файлу на вкладке, как в других редакторах. Именно это и делает bufferline
, он изменяет вкладки, чтобы показать все открытые файлы.
Чтобы начать его использовать, просто вызовите функцию .setup()
модуля bufferline
.
require('bufferline').setup({})
Вы можете найти документацию по опциям, доступным с помощью этой команды.
:help bufferline-configuration
Я рекомендую именно такую конфигурацию.
require('bufferline').setup({
options = {
mode = 'buffers',
offsets = {
{filetype = 'NvimTree'}
},
}
highlights = {
buffer_selected = {
italic = false
},
indicator_selected = {
fg = {attribute = 'fg', highlight = 'Function'},
italic = false
}
}
})
-
options.mode
: Значением'buffers'
мы указываем, что хотим «традиционные вкладки», отображающие список открытых файлов. -
options.offsets
: Это список типов файлов. Когда появляется окно такого типаbufferline
, избегайте размещения вкладки поверх него. Здесь мы указываем тип файлаNvimTree
, потому что это будет браузер файлов, который мы будем использовать. Это позволит добиться эффекта «боковой панели» при появлении окна nvim-tree. -
highlights
: Позволяет изменять цвета в определенных областях. Каждая секция (например,buffer_selected
) относится к области. В этом примере я помещаюitalic = false
, чтобы отключить курсив. Опцияfg
изменяет цвет букв. В этом примере я указываю, что он должен принять тот же цвет, который моя тема использует для функций. Подробности опции выделения можно посмотреть с помощью команды:help bufferline-highlights
.
indent-blankline.nvim
Github: lukas-reineke/indent-blankline.nvim
Добавляет рекомендации по отступам ко всем строкам в файле.
Этот плагин может быть настроен путем изменения глобальных переменных, например, так.
vim.g.indent_blankline_char = '▏'
Или, если вы предпочитаете vimscript.
let g:indent_blankline_char = '▏'
Список доступных переменных можно посмотреть с помощью этой команды.
:help indent-blankline-variables
У нас также есть возможность настроить его с помощью функции .setup()
модуля indent_blankline
.
require('indent_blankline').setup({
char = '▏',
})
Обратите внимание, что здесь нам не нужен префикс indent_blankline_
для свойств.
Я предпочитаю использовать функцию настройки для конфигурации. Это самые интересные варианты.
require('indent_blankline').setup({
char = '▏',
show_trailing_blankline_indent = false,
show_first_indent_level = false,
use_treesitter = true,
show_current_context = false
})
Здесь значение true
активирует функциональность опции, а false
— наоборот.
-
char
: это символ, отображаемый на экране. -
show_trailing_blankline_indent
: Определяет, показывать ли индикатор на пустых строках. -
show_first_indent_level
: Определяет, показывать ли индикатор в первой колонке. -
use_treesitter
: Определяет, можно ли использоватьtreesitter
для определения уровня отступа. -
show_current_context
: Выделяет текущий уровень отступа.
Treesitter
Github: nvim-treesitter/nvim-treesitter
Treesitter — это компонент внутри Neovim, он позволяет Neovim читать код так же, как компилятор. Как он это делает? Он сканирует код, собирает информацию о каждом символе и в конце генерирует синтаксическое дерево. Другими словами, он превращает ваш код в структуру данных, к которой Neovim может обращаться.
Сам по себе Treesitter не приносит нам никакой пользы, именно плагины, использующие treesitter, добавляют функциональность Neovim. Здесь на помощь приходит nvim-treesitter
, который предлагает несколько «модулей», которые мы можем использовать, чтобы воспользоваться преимуществами treesitter.
Вы можете прочитать подробную информацию о модулях с помощью этой команды.
:help nvim-treesitter-modules
Чтобы включить модуль nvim-treesitter
, мы должны вызвать функцию .setup()
плагина. А в аргументах мы должны указать конфигурацию каждого модуля. Пример:
require('nvim-treesitter.configs').setup({
highlight = {
enable = true,
},
})
Здесь мы настраиваем модуль highlight
, который отвечает за подсветку синтаксиса. По умолчанию все модули в nvim-treesitter
отключены. Как минимум, мы должны добавить enable = true
, чтобы включить их.
Для работы treesitter мы должны установить парсер для каждого языка, который мы хотим использовать. Парсер — это компонент, который считывает исходный код файла. Для установки парсера необходимо использовать команду TSInstall
, за которой следует название языка.
Итак, если мы хотим установить парсер для javascript, мы должны использовать эту команду.
:TSInstall javascript
У нас также есть возможность указать nvim-treesitter
, какие парсеры мы хотим установить автоматически. Для этого нужно добавить опцию ensure_installed
в функцию .setup()
. Там мы размещаем список языков.
require('nvim-treesitter.configs').setup({
highlight = {
enable = true,
},
ensure_installed = {
'javascript',
'typescript',
'tsx',
'css',
'json',
'lua',
},
})
nvim-treesitter-textobjects
Github: nvim-treesitter/nvim-treesitter-textobjects
Текстовые объекты в Neovim соответствуют текстовым шаблонам, которые можно найти в файле. По умолчанию Neovim может выполнять действия над словами, абзацами, тегами xml и некоторыми другими. nvim-treesitter-textbjects
добавляет больше шаблонов, основанных на запросах treesitter. Мы сможем действовать с функциями, классами, условиями и повторяющимися циклами.
Если вы не знаете, текстовые объекты используются Neovim в режиме «ожидающего оператора». Когда мы используем оператор, например d
(сочетание клавиш для delete), Neovim переходит в режим отложенного оператора. Когда мы нажимаем комбинацию типа daw
, то d
— это оператор, а aw
— текстовый объект. Чтобы узнать больше об этом, ознакомьтесь с документацией.
:help motion.txt
Возвращаемся к обычному программированию.
nvim-treesitter-textobjects имеет свои подмодули. С помощью этой команды можно перейти к документации.
:help nvim-treesitter-textobjects-modules
Чтобы настроить nvim-treesitter-textobjects, необходимо добавить свойство textobjects
в функцию .setup()
функции nvim-treesitter
.
require('nvim-treesitter.configs').setup({
highlight = {
enable = true,
},
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
['af'] = '@function.outer',
['if'] = '@function.inner',
['ac'] = '@class.outer',
['ic'] = '@class.inner',
}
},
},
ensure_installed = {
--- parsers....
},
})
Здесь мы включаем подмодуль select
подмодуля textbjects
, который позволяет Neovim выбирать детали на основе древовидных запросов. Внутри модуля у нас есть следующие опции.
-
enable
: Определяет, должен ли модуль быть включен. -
lookahead
: Определяет, должен ли курсор переходить к ближайшему вхождению. -
keymaps
: сочетания клавиш. В левой части мы объявляем ярлыки, представленные текстовым объектом. С правой стороны мы назначаем «группу». Эти группы создаютсяnvim-treesitter-textobjects
. Список групп можно найти здесь: Встроенные текстовые объекты.
targets.vim
Github: wellle/targets.vim
Создайте новые текстовые объекты. Такие вещи, как пары, аргументы, разделители и т.д. Я рекомендую вам ознакомиться с документацией, там вы найдете подробное объяснение (с графикой) каждого текстового объекта: targets.vim — обзор.
Вы можете изменить некоторые аспекты этого плагина, но это не обязательно. Вы можете использовать его сразу же, не записывая никакой конфигурации. Если вы хотите узнать доступные опции, выполните эту команду.
:help targets-settings
Комментарий.nvim
Github: numToStr/Comment.nvim
Добавляет оператор для комментирования кода. По умолчанию он использует ярлык gc
. Это означает, что мы будем иметь доступ ко всем комбинациям, которые Neovim позволяет нам в режиме отложенного оператора. Мы можем закомментировать слово с помощью gciw
, мы можем закомментировать абзац с помощью gcap
. Мы можем закомментировать произвольное количество строк с помощью gc
+ число + j
. Способность Comment.nvim комментировать будет зависеть от ваших знаний о текстовых объектах и перемещениях.
Ярлык gc
также работает в визуальном режиме. Использование gc
в визуальном режиме закомментирует все выделенные строки.
С помощью сочетания клавиш gcc
мы можем закомментировать строку в обычном режиме.
Этот плагин не требует ручной настройки. Нам нужно только вызвать функцию .setup()
модуля Comment
.
require('Comment').setup({})
Если вы хотите узнать о доступных опциях, ознакомьтесь с документацией: Comment.nvim — setup.
vim-surround
Github: tpope/vim-surround
Позволяет выполнять действия с фрагментами текста, которые окружены шаблоном. Он предоставляет быстрые клавиши для добавления, удаления и замены узора вокруг текста.
Позвольте мне объяснить на нескольких примерах.
Если у нас есть текст 'Hello, world'
, мы можем удалить кавычки, нажав ds'
. ds
— это ярлык для удаления, а '
— это деталь, которую мы хотим удалить.
Если мы хотим добавить шаблон, мы используем ys
. Допустим, у нас есть слово Hello
, мы можем заключить его в круглые скобки, нажав ysiw)
. ys
— это ярлык для добавления, iw
— текстовый объект, представляющий слово, а )
— шаблон, который мы хотим добавить. Результатом будет (Hello)
.
Если мы находимся в визуальном режиме, мы можем обернуть выделение, используя S
+ шаблон, который мы хотим использовать.
Для замены шаблона мы используем cs
. Если у нас есть текст 'Hello, world'
, мы можем изменить одинарные кавычки на двойные, нажав cs'"
. cs
— это сокращение для замены, '
— то, что мы хотим заменить, а "
— новый образец.
nvim-tree
Github: kyazdani42/nvim-tree.lua
Это проводник файлов. Он показывает текущую структуру каталогов в виде дерева. Он также позволяет создавать, удалять и переименовывать файлы.
Чтобы начать использовать плагин, просто вызовите функцию .setup()
модуля nvim-tree
.
require('nvim-tree').setup({})
Для получения информации о сочетаниях клавиш, доступных в браузере, выполните эту команду.
:help nvim-tree-default-mappings
Если вы хотите настроить его, сначала проверьте доступные опции.
:help nvim-tree-setup
Эти варианты мне кажутся наиболее интересными.
require('nvim-tree').setup({
hijack_cursor = false,
on_attach = function(bufnr)
local bufmap = function(lhs, rhs, desc)
vim.keymap.set('n', lhs, rhs, {buffer = bufnr, desc = desc})
end
-- See :help nvim-tree.api
local api = require('nvim-tree.api')
bufmap('L', api.node.open.edit, 'Expand folder or go to file')
bufmap('H', api.node.navigate.parent_close, 'Close parent folder')
bufmap('gh', api.tree.toggle_hidden_filter, 'Toggle hidden files')
end
})
vim.keymap.set('n', '<leader>e', '<cmd>NvimTreeToggle<cr>')
Здесь я использую сочетание клавиш <leader>e
для открытия и закрытия браузера. А в функции .setup()
у нас есть два варианта.
-
hijack_cursor
: Определяет, должен ли nvim-tree обрабатывать положение курсора в окне. Если изменить его наtrue
, nvim-tree помещает курсор в начало имени каждого «узла». -
on_attach
: Это функция, которая будет выполняться каждый раз, когда nvim-tree открывает окно. Рекомендуется создавать ярлыки в этой функции. Здесь мы используем модульnvim-tree.api
для доступа к функциям nvim-tree. Для создания ярлыков мы используем функцию Neovimvim.keymap.set
. В первом ярлыке мы назначаемL
функцииapi.node.open.edit
, которая позволяет нам открыть узел. ИспользуйтеH
, чтобы закрыть узел, в котором находится курсор. Используйтеgh
, чтобы показать/скрыть скрытые файлы.
Телескоп
Github: nvim-telescope/telescope.nvim
Основная функциональность телескопа заключается в возможности интерактивной фильтрации списка элементов. По умолчанию он позволяет нам фильтровать такие списки, как история файлов, открытые файлы, коммиты git, ошибки файлов и 47 других вещей. Да, telescope в настоящее время имеет 51 подкоманду. Откуда я это знаю? Потому что вы можете искать команду telescope с помощью telescope.
:Telescope builtin
Телескоп не нужно настраивать вручную. Мы можем вызывать любую из его команд без каких-либо проблем. Но если вы хотите узнать, какие опции доступны, ознакомьтесь с документацией.
:help telescope.setup()
Тогда остается только создать ярлыки для команд, которые мы хотим использовать чаще всего.
vim.keymap.set('n', '<leader><space>', '<cmd>Telescope buffers<cr>')
vim.keymap.set('n', '<leader>?', '<cmd>Telescope oldfiles<cr>')
vim.keymap.set('n', '<leader>ff', '<cmd>Telescope find_files<cr>')
vim.keymap.set('n', '<leader>fg', '<cmd>Telescope live_grep<cr>')
vim.keymap.set('n', '<leader>fd', '<cmd>Telescope diagnostics<cr>')
vim.keymap.set('n', '<leader>fs', '<cmd>Telescope current_buffer_fuzzy_find<cr>')
Стоит отметить, что telescope способен использовать внешние инструменты, такие как fd и ripgrep, для увеличения скорости поиска.
телескоп-фзф-натив
Github: nvim-telescope/telescope-fzf-native.nvim
Это расширение для телескопа. Вы можете заставить telescope использовать тот же алгоритм поиска, что и fzf, поэтому для поиска fzf
и telescope можно использовать один и тот же синтаксис. Кроме того, это также увеличивает скорость поиска.
Код расширения написан на C
, поэтому для его использования необходимо убедиться, что у вас установлен компилятор C
, а также make
.
Чтобы загрузить это расширение, мы должны использовать функцию .load_extension()
от telescope.
require('telescope').load_extension('fzf')
Toggleterm
Github: akinsho/toggleterm.nvim
Хорошей новостью является то, что Neovim имеет встроенный терминал, поэтому теоретически нам не нужны никакие плагины для его использования. Плохая новость заключается в том, что это не «компонент», который можно легко спрятать, это скорее особый вид окна. Toggleterm позаботится об управлении этими окнами таким образом, чтобы их можно было открывать и скрывать с помощью сочетания клавиш.
Toggleterm имеет много возможностей, я рекомендую вам прочитать документацию для более подробной информации: Toggleterm.nvim — Roadmap.
Чтобы начать использовать плагин, необходимо воспользоваться функцией .setup()
модуля toggleterm
. Я покажу вам наиболее интересные на мой взгляд варианты.
require('toggleterm').setup({
open_mapping = '<C-g>',
direction = 'horizontal',
shade_terminals = true
})
-
open_mapping
: Создает комбинацию клавиш для открытия/закрытия окна с терминалом. -
direction
: Будет ориентацией окна по умолчанию. Он может бытьгоризонтальным
,вертикальным
илиплоским
. -
shade_terminals
: Определяет, должен ли цвет фона окна терминала быть темнее, чем у обычных окон.
vim-fugitive
Github: tpope/vim-fugitive
Предоставляет графический интерфейс для управления git-репозиторием из Neovim (или Vim). Он также позволяет нам запускать команды git непосредственно из Neovim.
Для получения полной информации об этом плагине ознакомьтесь с документацией.
:help fugitive.txt
Gitsigns
Github: lewis6991/gitsigns.nvim
Его основная функция заключается в размещении флагов рядом со строкой кода, указывающих на то, какие изменения были внесены в файл. Он может подсказать нам, какие строки являются новыми, какие изменились или где мы удалили строку. У него есть и другие функции, но их слишком много, чтобы перечислять их здесь. С помощью этой команды можно просмотреть список функций.
:help gitsigns-functions
Вы можете найти описание каждой опции, доступной для этого плагина, с помощью этой команды.
:help gitsigns-config
Если вы просто хотите настроить дисплеи, то вам нужно изменить именно эти параметры.
require('gitsigns').setup({
signs = {
add = {text = '▎'},
change = {text = '▎'},
delete = {text = '➤'},
topdelete = {text = '➤'},
changedelete = {text = '▎'},
}
})
Пленарное заседание
Github: nvim-lua/plenary.nvim
Коллекция модулей. У этого плагина нет определенной «темы», он имеет множество функций, которые используют другие авторы плагинов для решения общих проблем.
Telescope использует этот плагин в своем исходном коде, поэтому он должен быть у вас установлен.
vim-repeat
Github: tpope/vim-repeat
Добавляет поддержку повторов для команд, создаваемых плагинами. Если вы не знаете, если мы нажимаем .
Neovim повторяет последнее действие, которое мы сделали. Например, если мы удалили слово с помощью diw
, мы можем повторить это действие, просто нажав .
. vim-repeat
позволяет повторять действия плагина с помощью .
.
editorconfig
Github: editorconfig/editorconfig-vim
EditorConfig — это как файл конфигурации, но он ограничен параметрами стиля, такими как размер отступа или кодировка файла. С помощью editorconfig-vim
мы можем заставить Neovim читать этот формат.
vim-bbye
Github: moll/vim-bbye
Предоставляет команды, позволяющие закрывать файлы без изменения открытых окон. Например, если у вас открыто 2 окна и вы пытаетесь закрыть файл с помощью команды bdelete
, Neovim закроет файл и окно. С помощью этого плагина вы можете использовать команду Bdelete
, чтобы закрыть файл и оставить окно открытым.
vim.keymap.set('n', '<leader>bc', '<cmd>Bdelete<CR>')
Что дальше?
Следующим шагом будет заставить Neovim понимать код нашего проекта: автозаполнение переменных, возможность перехода к определению функции, переименование переменной и тому подобное. Для этого я рекомендую плагины nvim-lspconfig и nvim-cmp. Настроить эти две конфигурации — задача не из легких, есть много деталей, которые необходимо объяснить. Я подготовил еще одно руководство по этой конкретной теме:
- Настройка nvim-lspconfig + nvim-cmp.
Где еще вы можете найти плагины?
Вот некоторые ресурсы, где вы можете найти информацию об экосистеме плагинов Neovim.
- awesome-neovim
- неовимкрафт
- на этой неделе в неовиме
Заключение
Мы рассмотрели несколько тем для Neovim. Мы знаем, что можем изменять некоторые компоненты интерфейса Neovim, адаптировать их так, чтобы они были похожи на другие редакторы. У нас есть bufferline
, который может дать нам вкладки для каждого открытого файла. У нас есть nvim-tree
, который предоставляет нам проводник файлов. Мы можем воспользоваться функциями git
благодаря fugitive
и gitsigns
. Мы можем искать самые разные вещи с помощью Telescope
. Также мы узнали о различных плагинах, которые могут расширить наши возможности по работе с текстом, таких как nvim-treesitter
, vim-surround
и др. У нас есть все необходимое для создания хорошего опыта Neovim.
Спасибо за ваше время. Если вы нашли эту статью полезной и хотите поддержать мои усилия по созданию большего количества контента, вы можете оставить совет на сайте buymeacoffee ☕.