Минимальная конфигурация Neovim, написанная на lua.
Оглавление
Neovim — довольно крутой преемник Vim, в котором основное внимание уделяется совместимости, добавлению функциональности асинхронных плагинов и попытке очистить базу кода. Поскольку в разное время мне надоели как Sublime Text (2 и 3), так и Atom, и после осознания того, сколько разработок я делаю по SSH, мне показалось разумным попробовать использовать vim (или nvim, в данном случае) в качестве моей IDE. Преимущества, по сути, сводятся к:
Поэтому я решил создать этот репозиторий. Есть несколько версий, смотрите CHANGELOG.
Эта конфигурация задумана как отправная точка и соответствует только моим потребностям. Если вы хотите настроить его, перейдите к пункту 6. Настройка.
mv ~ /.config/nvim ~ /.config/nvim.bak
ОС | ПУТЬ |
---|---|
Линукс, МакОС | $XDG_CONFIG_HOME/nvim , ~/.config/nvim |
Windows (коммд) | %localappdata%nvim |
Windows (PowerShell) | $env:LOCALAPPDATAnvim |
ПРИМЕЧАНИЕ. URL-адрес вашего форка будет примерно таким:
https://github.com/<your_github_username>/neovim-config.git
.
ПРИМЕЧАНИЕ. Если вы следуете рекомендованному выше шагу (т. е. разветвляете репозиторий), замените
ntk148v
на<your_github_username>
в командах ниже.
git clone https://github.com/ntk148v/neovim-config.git " ${XDG_CONFIG_HOME :- $HOME / .config} " /nvim
Если вы используете cmd.exe
:
git clone https://github.com/ntk148v/neovim-config.git " %localappdata%nvim "
Если вы используете powershell.exe
git clone https://github.com/ntk148v/neovim-config.git " ${env : LOCALAPPDATA} nvim "
nvim
git pull
. Файлы конфигурации будут автоматически загружены в соответствующее время, поэтому вам не нужно запрашивать эти файлы вручную.
tree ~ /.config/nvim
├── init.lua
├── lazy-lock.json
└── lua
├── autocmds.lua
├── custom.lua
├── mappings.lua
├── options.lua
├── plugins
│ ├── configs
│ │ ├── cmp.lua
│ │ ├── gitsigns.lua
│ │ ├── lspconfig.lua
│ │ ├── lualine.lua
│ │ ├── luasnip.lua
│ │ ├── mason.lua
│ │ ├── null-ls.lua
│ │ ├── telescope.lua
│ │ ├── tree.lua
│ │ └── treesitter.lua
│ └── init.lua
└── sample_custom.lua
Плагин | Описание |
---|---|
ленивый.nvim | Современный менеджер плагинов для Neovim. |
mason.nvim | Портативный менеджер пакетов для Neovim, который работает везде, где работает Neovim. Легко устанавливайте и управляйте серверами LSP, серверами DAP, линтерами и форматтерами. |
nvim-lspconfig | Коллекция общих конфигураций для встроенного клиента языкового сервера Neovim. |
gitsigns | Супер быстрые git-декорации, реализованные исключительно на lua/бирюзовом языке. |
nvim-treesitter | Конфигурации Nvim Treesitter и уровень абстракции |
nvim-cmp | Плагин автозаполнения |
ЛуаСнип | Snippet Engine для Neovim, написанный на Lua |
nvim-tree.lua - | Проводник, написанный на Lua |
nvim-автопары | Супермощный автопар для Neovim. |
nvim-web-devicons | Lua- fork vim-web-devicons для neovim |
lualine.nvim | Невероятно быстрый и простой в настройке плагин статусной строки neovim, написанный на чистом Lua. |
norcalli/nvim-colorizer.lua | Самый быстрый колоризатор Neovim. |
nvim-телескоп/telescope.nvim | Найти, Фильтровать, Предварительный просмотр, Выбрать. Все Луа, все время. |
розово-сосновый | Атмосфера Сохо для Neovim |
nvimtools/none-ls.nvim | null-ls.nvim reloaded / Используйте Neovim в качестве языкового сервера для внедрения диагностики LSP, действий с кодом и многого другого через Lua. |
фолк/который-key.nvim | Создайте привязки клавиш, которые прилипнут. WhichKey помогает вам запомнить раскладки клавиш Neovim, показывая доступные сочетания клавиш во всплывающем окне по мере ввода. |
По умолчанию установлены и настроены следующие LSP-серверы:
Кроме того, он интегрируется с nvim-treesitter, обеспечивая богатую подсветку синтаксиса и другие возможности синтаксического анализа языка.
Если ваш язык не поддерживается, выполните следующие действия:
:LspInstall ` <your_language_server> `
:TSInstall ` <language_to_install> `
Вы можете добавить больше серверов LSP и подсветку синтаксиса языка, отредактировав собственный файл.
Это раскладки клавиш по умолчанию. В следующих сочетаниях клавиша <leader>
+` установлена на символ `` (пробел), проверьте: keymaps.lua.
Ярлык | Режим | Описание |
---|---|---|
ок | Вставлять | Esc с помощью kk |
<leader> + р | Нормальный | Перезагрузить файл конфигурации |
<leader> + с | Нормальный | Сохранить файл |
<leader> + q | Нормальный | Сохраните (закройте все окна) и выйдите из Neovim. |
<leader> + н | Нормальный | Открыть NvimTree |
<leader> + номер | Нормальный | Обновить NvimTree |
<leader> + нф | Нормальный | Найти файл в NvimTree |
<leader> + фф | Нормальный | Откройте телескоп, чтобы найти файлы |
<leader> + фг | Нормальный | Откройте телескоп для выполнения живого grep |
<leader> + фб | Нормальный | Откройте телескоп, чтобы просмотреть буферы |
<leader> + фч | Нормальный | Откройте телескоп, чтобы показать помощь |
<leader> + фо | Нормальный | Откройте телескоп, чтобы показать недавно открытые файлы. |
<leader> + см | Нормальный | Откройте Telescope, чтобы просмотреть коммиты git |
<leader> + w/j/k/l | Нормальный | Перемещайтесь по шпагатам |
мм | Нормальный | Комментировать/раскомментировать строку |
Существует множество раскладок клавиш по умолчанию, вы можете проверить это с помощью команды :map
. Есть и другие варианты:
:nmap
для отображения в обычном режиме:vmap
для отображения визуального режима:imap
для сопоставлений режима вставки Приведенный выше список не является полным. Набрав :help map
в Vim, вы получите дополнительную информацию.
Вы можете настроить эту конфигурацию, создав custom
модуль. Вы можете выбрать любой из двух способов:
${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom.lua
.${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom/
если ваша пользовательская конфигурация слишком длинная и вы хотите разделить ее на несколько файлов.Ознакомьтесь с образцом пользовательского файла в качестве отправной точки. Логика взята из CyberNvim. В конфигурации есть несколько определенных разделов:
M.setup_sources
используется для добавления дополнительных источников для подключения к Null-ls — список источников можно найти здесь. Параметр b является сокращением от null_ls.builtins.M.ensure_installed
используется для добавления дополнительного маркера Treesitter.M.plugins
— это место, куда вы можете добавить свои собственные определения плагинов.M.configs
— это самый важный раздел вашей собственной конфигурации. Здесь вы можете определить любые автокоманды, запросить любые файлы или иным образом полностью перенести текущую конфигурацию.M.formatting_servers
используется для настройки правил автоматического форматирования. Вам необходимо выбрать языковой сервер, который предоставит возможности автоформатирования. Не стесняйтесь сообщить о проблеме или открыть запрос на включение. Пожалуйста!