FixVim — это конфигурация NeoVim для Linux, написанная на Lua, цель которой — предоставить разумную конфигурацию по умолчанию с невероятно быстрым временем запуска. Если вам понравится данная сборка, то поставьте 🌟 этому репозиторию!
- Используется удобная модульная структура, благодаря которой очень легко поддерживать работоспособность сборки.
- Ориентированность на русскоговорящих пользователей.
- Имеет разумный набор расширений и параметров, которые можно легко настроить под себя.
- Огромное количество поясняющих комментариев, благодаря которым очень легко разобраться в функционале.
- FixVim по умолчанию полностью настроен для работы с Python и Lua, включая удобную работу с NeoVim API, благодаря чему очень удобно улучшать FixVim под свои нужды. Также имеются расширения для лучшего опыта работы с CSS (различные взаимодействия с цветовыми кодами и их отображение). Со временем будет добавляться поддержка других инструментов для программирования по умолчанию, но вы также можете добавлять нужное самостоятельно.
Для того чтобы FixVim работал корректно, требуется удовлетворить его зависимости. (Учтите, что одним из требований является использование последней стабильной версии NeoVim!) В данном примере используется команда для Arch Linux, поэтому вам придется заменить ее на аналогичную для вашего дистрибутива! Чтобы установить необходимые пакеты, выполните следующую команду:
sudo pacman -Syu --needed git neovim xclip wl-clipboard nodejs npm
Данная команда выполнит полное обновление системы, после чего установит недостающие пакеты.
Все пакеты, указанные выше, рекомендуются к установке по умолчанию для лучшей совместимости и избежания потенциальных проблем.
Однако вы можете пренебречь некоторыми пакетами. Например если вы не используете Wayland, то нет необходимости в установке пакета wl-clipboard
.
Краткое объяснение назначения пакетов:
neovim
- программа, к которой будет применена конфигурацияgit
- необходим для установки FixVimxclip
- поддержка буфера обмена на X11wl-clipboard
- поддержка буфера обмена на Waylandnodejs
иnpm
- зависимости для Mason (менеджер пакетов для NeoVim)
Помимо этого, требуется наличие терминала с поддержкой True Color, а также в нем должен использоваться один из шрифтов коллекции Nerd Fonts. Также необходимо удовлетворить зависимости актуальной версии NeoVim и используемых в FixVim расширений. (Например для nvim-treesitter необходимо наличие gcc в системе.)
P.S: Если вы до этого не настраивали NeoVim, то можете смело приступать к установке FixVim. Если же вы использовали собственные настройки или любой другой дистрибутив, то выполните действия, указанные ниже:
- Сохраните копию своей конфигурации, если вам это нужно. Данную процедуру можно выполнить следующей командой:
mv ~/.config/nvim ~/.config/oldnvim
- После выполнения первого пункта следуйте действиям, описанным в разделе
"Удаление FixVim"
. (Несмотря на название раздела, указанные в нем инструкции подходят как для стандартного NeoVim, так и для его дистрибутивов.) Если вы все же решили сохранить свою конфигурацию, то перед выполнением команды из указанного выше раздела удалите в ней часть~/.config/nvim
в конце.
Теперь вы готовы к следующему этапу!
Есть несколько способов установки FixVim на ваш ПК. Выбирайте тот, который лучше покроет ваши потребности!
Для установки последней версии данной сборки выполните команду ниже:
git clone --depth 1 https://github.com/krator3/fixvim ~/.config/nvim && rm -rf ~/.config/nvim/lazy-lock.json ~/.config/nvim/.git
Также для корректной работы FixVim не требуются файлы LICENSE и README.md, поэтому можете удалить их, если они вам не нужны.
Если же вы желаете установить конкретную версию FixVim, то выберите нужную вам в разделе "Releases" и найдите в ее описании команду для установки. Учтите, что не рекомендуется устанавливать слишком старые версии, так как они могут быть несовместимы с новыми выпусками NeoVim!
P.S: Команда клонирует FixVim на ваш ПК по пути ~/.config/nvim/
и удаляет лишние файлы, не требующиеся для его работы.
После выполнения предыдущих шагов остается последний штрих. Запустите следующую команду в своем терминале:
nvim
Данная команда запустит Neovim, далее автоматически активирует Lazy
(менеджер плагинов), который установит и подключит расширения, предложенные данной сборкой.
После завершения установки нажмите клавишу q
, которая закроет окно Lazy
. При следующих запусках NeoVim
окно Lazy
больше не будет запускаться автоматически!
Далее, убедитесь, что все предусмотренные treesitter были установлены, а также проконтролируйте установку LSP и других инструментов через команду :Mason
.
Данное окно также закрывается при помощи клавиши q
и оно тоже не будет автоматически отображаться при следующих запусках программы.
По окончании финальной настройки FixVim перезапустите программу и начинайте получать удовольствие от ее использования!
P.S: Дополнительно рекомендуется запустить команду :checkhealth
после запуска NeoVim для проверки корректности установки FixVim.
Для установки дополнительных LSP используйте одну из предложенных команд:
:LspInstall <language>
:MasonInstall <language>
. (Данная команда позволяет устанавливать не только LSP, но и другие полезные инструменты для программирования.)
Для установки дополнительных TreeSitter используется команда :TSInstall <language>
.
Обычно недостающие TreeSitter устанавливаются автоматически, но вы можете изменить данное поведение в настройках сборки.
P.S: Обратите внимание, что комбинации клавиш FixVim могут конфликтовать с системными сочетаниями клавиш. В таком случае вам придется вручную изменить их либо в настройках FixVim, либо в системе. Помните, что системные сочетания обладают более высоким приоритетом, поэтому в сложившейся ситуации вместо сочетаний FixVim будут выполнены системные.
Для того чтобы полностью удалить FixVim из вашей системы и вернуть стандартный NeoVim необходимо выполнить следующую команду:
rm -rf ~/.cache/nvim ~/.local/share/nvim ~/.local/state/nvim ~/.config/nvim
После этого переустановите пакет neovim
.
Здесь вы можете узнать ближайшие планы по разработке FixVim. Учтите, что планы могут меняться, поэтому нет никаких гарантий, что все из этого списка будет добавлено!
- Улучшить производительность FixVim
- Заменить vim-vsnip на LuaSnip в расширении nvim-cmp
- Добавить активацию раширений по событиям
- Добавить новые полезные плагины
- Улучшисть файловую структуру FixVim
- Усовершенствовать документацию FixVim
Предлагаемые функции и известные проблемы, найденные сообществом, можно посмотреть в разделе открытых проблем.
Любая помощь со стороны сообщества категорически приветствуется! Если вы хотите сообщить о найденных ошибках или предложить нововведение без готового решения, то просто откройте новую проблему с соответствующей темой. Если же вы хотите внести изменения в сборку (например, исправить ошибку, улучшить документацию и так далее), то не стесняйтесь и смело предлагайте свои изменения! Если ваш вклад будет достаточно качественным и востребованным, то он будет объединен с проектом FixVim. В независимости от того, какую помощь вы решили оказать, важно подробно описать аспекты того, о чем вы решили сообщить, или о том, что вы решили улучшить. Чем детальнее и понятнее вы сможете выразить свои мысли, тем больше шансов, что вам смогут помочь.
P.S: Учтите, что изменения не должны быть основаны на том, что находится во вкладке "Releases"
!
Разработчики:
- Остапенко Максим - Krator3
- Новгородцев Кирилл - Dev-cmyser
- Алексеев Бронислав - Alexeev-engineer
Тестировщики:
- Поворознюк Михаил - archer7717
См. также список соавторов, принявших участие в этом проекте.
Этот проект лицензируется по лицензии GNU GPL — подробности см. в файле LICENSE
-
Что делать, если Python не видит сторонние файлы и библиотеки?
По умолчанию Pyright (LSP для Python) запускается в однофайловом режиме работы. Чтобы переключить режим работы на многофайловый следует ознакомиться со следующей настройкой:
root_dir = lsputil.root_pattern('.git', 'pyrightconfig.json', 'setup.py', 'setup.cfg', 'requirements.txt', 'Pipfile', 'pyproject.toml'),
Данный параметр определяет файлы и директории, которые переводят Pyright в многофайловый режим работы. При обнаружении чего-либо указанного в параметре Pyright будет видеть все содержимое данного каталога. Чтобы Pyright смог обнаружить сторонние библиотеки нужно использовать виртуальное окружение. Для того чтобы его создать выполните следующую команду в терминале в нужной вам директории до запуска NeoVim!
python3 -m venv venv
После активируйте его командой ниже:
source venv/bin/activate
Теперь запустите Neovim командой
nvim
в этом же каталоге. После всех проведенных манипуляций FixVim будет видеть как сторонние файлы, так и сторонние библиотеки.P.S: Если вам понадобится установить еще несколько библиотек внутри NeoVim, то не забудьте вновь активировать виртуальную среду в выбранном терминале! Также после установки новых библиотек выполняйте команду
:LspRestart
в NeoVim для того, чтобы Pyright принял все внесенные изменения! Естественно, вам никто не запрещает сначала установить нужные библиотеки и только после этого зайти в NeoVim. Если вы уверены, что вам больше ничего не придется доустановить, то нет необходимости проделывать действия из этого блока. -
Как сохранить существующую конфигурацию параллельно с FixVim? Для этого вы можете использовать псевдонимы вашей командной оболочки. Например, вы можете установить FixVim в
~/.config/fixvim
и создать псевдоним:alias fixvim='NVIM_APPNAME="fixvim" nvim'
Благодаря этому вы сможете запускать собственную конфигурацию при помощи команды
nvim
, а сборку FixVim при помощи командыfixvim
. Также вы можете изменить псевдоним на любой другой. Дополнительно стоит отметить, что данный способ должен быть совместим с любой другой конфигурацией NeoVim.P.S: Учтите, что данная инструкция не была проверена мной лично! Данная информация была взята из документации к kickstart.nvim и адаптирована под данный проект!
-
Как запустить NeoVim без плагинов и других настроек? Для этого воспользуйтесь командой ниже:
nvim --clean