Когда вы работаете в Visual Studio или Visual Studio Code (технически это не является IDE), или JetBrains, у него все настроено за вас. Ничего специального скачивать не нужно. Вы скачиваете само приложение, открываете, пишете код. При переходе на Neovim или vim вы заметите, что вам нужно научиться настраивать плагин с помощью Lua (только Neovim) или Vimscript. Плагин может быть написан на любом из них, что означает, что авторы плагинов могут предоставить примеры конфигурации своего плагина на любом языке, что означает, что вам нужно будет в некоторой степени изучить оба, хотя более поздние плагины теперь используют Lua. Вот почему я написал эту статью, я хочу предоставить список плагинов, для использования которых потребуется минимальная настройка. Так что вам не нужно будет тратить время на настройку того или иного. Вы устанавливаете, вы кодируете.

Следует уточнить, что эта статья не о том, как настроить neovim или vim с помощью lua. Но я покрою необходимый минимум. Цель этой статьи — рассказать вам, какие плагины нужно установить, подавляющее большинство предлагаемых плагинов будут работать из коробки. Если вы хотите узнать, как настроить neovim с помощью Vimscript или Lua, я рассмотрю возможность написания статьи об этом, если будет достаточно запросов, однако я настоятельно рекомендую эту статью, поскольку она отлично справляется с предоставлением введение.

Итак, давайте поговорим о самой большой функции IDE. LSP и автозаполнение. Для тех, кто не знает. Между автозаполнением и LSP есть разница, основная из которых заключается в том, что автозаполнение создает всплывающее окно, которое позволяет вам выбрать слова, наиболее похожие на то, которое вы печатаете. LSP отвечает за отображение документации и функций, без него у вас будет просто очень навороченный текстовый редактор. LSP - это то, что вам действительно нужно, он выполняет поиск символов, что означает поиск ссылок на функции, где используются переменные и т. д., и переходит к определению. Вооружившись этой информацией, давайте перейдем к сути этой статьи.

Примечания по настройке

Это относится как к vim, так и к neovim. Если вы новичок в vim или neovim, вот несколько быстрых советов, которые помогут вам начать работу. Если вы уже знакомы с настройкой, то можете пропустить этот раздел.

  1. При настройке neovim или vim после внесения изменений вам нужно будет использовать команду so %, чтобы изменения вступили в силу, это называется сорсингом. Команды запускаются путем ввода «:», а затем имени команды. В данном случае :so%.
  2. Ваш файл конфигурации называется .vimrc(для vim) или init.vim (для neovim) и будет находиться в разных местах в зависимости от вашей операционной системы. . Важно выяснить, где будет находиться ваш файл конфигурации. Пожалуйста, обратитесь к этой таблице из ответа SO пользователя jamessan. Если файл или каталог не существует, создайте его.
OS         | Vim        | nvim
-----------|------------|---------------------
Windows    | ~/vimfiles | ~/AppData/Local/nvim
*nix/macOS | ~/.vim     | ~/.config/nvim

3. Это касается только неовима. Все файлы lua будут помещены в папку с именем «lua» в той же папке, где будет находиться ваш файл конфигурации neovim.

.

├── init.vim <-- this is the config file
├── lua
│  ├── calc.lua
│  ├── custom.lua
│  ├── dash.lua
│  ├── keymaps.lua
│  ├── packages.lua
│  ├── plugins.lua
│  ├── scratchpad.lua
│  └── settings.lua
├── plugin
│  └── packer_compiled.lua

Например, так выглядит мой каталог nvim (с удаленными другими файлами), все мои файлы lua находятся внутри папки lua.

4. Ваши файлы lua не будут включены в ваши конфигурации автоматически. Они должны быть явно импортированы. Если, например, я хочу включить конфигурации, сделанные в dash.luaвнутри init.vim, я должен иметь строку lua require('dash'). Важно, чтобы не было расширения файла.

"Lua
lua require('dash')
lua require('settings')
lua require('keymaps')
lua require('plugins')
lua require('packages')
lua require('custom')

У меня это внизу файла init.vim.

Установка плагинов

Вам нужно установить плагин с помощью менеджера плагинов. Есть много разных видов, но я предлагаю упаковщик. Обратитесь к разделу быстрый запуск, чтобы установить его, это простой процесс. После того, как он будет установлен, вам нужно будет использовать его, а упаковщик настроен с использованием Lua, поэтому вам нужно создать файл, который можно назвать как угодно, но для целей этой статьи это будут packages. Луа. Я также отметил дополнительные плагины, которые не обязательны, но их желательно иметь.

Затем вставьте следующее внутрь packages.lua. Поскольку это файл lua, не забудьте сохранить файл в папке lua.

vim.cmd [[packadd packer.nvim]]

return require('packer').startup(function(use)
  -- Packer can manage itself
 use 'wbthomason/packer.nvim'
 use {'neoclide/coc.nvim', branch = 'release'}
 use 'https://github.com/tpope/vim-commentary' -- optional


 -- git integration (optional)
 use 'https://github.com/lewis6991/gitsigns.nvim'
 use 'https://github.com/tpope/vim-fugitive'


 -- Telescope - file browsing
 use 'nvim-lua/popup.nvim'
 use 'nvim-lua/plenary.nvim'
 use 'nvim-telescope/telescope.nvim'
end)

Плагины еще не установлены. Чтобы установить плагины, убедитесь, что вы используете источник файла, затем запустите:PackerInstall, откроется окно слева и начнется установка плагинов. Чтобы обновить плагины, запустите :PackerUpdate.

Теперь объясним, что делает каждый плагин.

Чтобы уточнить, я скажу вам, какие плагины вы должны установить, а как их использовать, я не буду рассказывать об этом. Поскольку это добавило бы ненужное раздувание статьи, более того, изучение того, как использовать плагин из самого репозитория, было бы намного эффективнее. Если вы беспокоитесь о документации, не беспокойтесь. Все авторы очень многословны, и это хорошо.

  1. coc.nvim для автозаполнения и LSP. Автозаполнение будет работать из коробки, LSP потребует небольшой настройки. Вам нужно будет установить его, для этого перейдите на эту страницу репозитория и перейдите по ссылкам.
  2. vim-commentary — закомментировать сразу несколько строк кода.
  3. gitsigns.nvim предоставит символы git зеленым и желтым линиям среди прочего при редактировании. Работает из коробки, настройка не требуется.
  4. vim-fugitive — это плагин для интеграции git в neovim. Таким образом, вам не нужно выходить из neovim и снова заходить в него.
  5. popup.nvim и plenary.nvim требуются для telescope.nvim.
  6. telescope.nvim — это нечеткий поиск по списку, но у него есть и другие функции. основное назначение телескопа - переключение между файлами. Он обладает широкими возможностями расширения и имеет множество плагинов для поддержки интеграции телескопа с другими инструментами. Существует расширение для coc.nvim, и оно просто фантастическое.

Все перечисленные плагины имеют разумные значения по умолчанию и не требуют настройки. За исключением coc.nvim, даже в этом случае единственная «настройка» — это поиск и установка соответствующих языковых серверов, что не займет много времени.

Настоятельно рекомендуется подробно изучить, как использовать каждый плагин. Поскольку вы узнаете, как максимально использовать каждый из них. Однако это следует делать только после того, как вы освоитесь с плагином и будете использовать его постоянно. Потому что нет смысла тратить столько времени на то, чем вы не будете пользоваться через какое-то время. Перечисленные выше плагины — это те, которые я использовал ежедневно в течение многих лет, и для меня время, потраченное на просмотр документации, является отличным вложением.