
Меня зовут Никита Ефимов, я – программист в компании Nexign. За последние пару лет в разработке я попробовал огромное количество редакторов для кода разного вида и выделил для себя пару любимчиков.
В этой статье затронем редакторы семейства Vi и разберем базовые сценарии работы с NeoVim. Начинающие специалисты смогут использовать материал в качестве туториала, а опытные разработчики, возможно, отметят для себя что-то новое.
Почему именно NeoVim? Всё просто: этот текстовый редактор стал особенно популярным среди разработчиков. Он представляет собой эволюцию классического Vim (который в свою очередь был улучшением оригинального Vi), с улучшенными возможностями и расширенным функционалом. NeoVim сохраняет совместимость с Vim, но также предлагает дополнительные возможности и улучшенный интерфейс. Он позволяет более эффективно работать с кодом, а главное — настраивать редактор под свои нужды.
История: от Vi(m) до NeoVim
От Vi(m) до NeoVim
История редактора Vi начинается с 1977 года. Vi пришел на замену устаревшему редактору кода для печатного терминала – QED, который был создан еще 1966 году.
Технологии и потребности разработчиков не стоят на месте, и вот уже в 1991 году был создан редактор Vim (улучшенная версия Vi). Vim позволял писать конфигурации, биндить клавиши и делать прочие настройки. Возможности ограничивались одним .vimrc файлом, а конфиги писались только на vimscript.
Ну, а NeoVim был создан программистом Thiago de Arruda из Бразилии в 2013, когда его пул реквест в ветку Vim отклонили.
Функциональность
Оригинальный NeoVim очень похож на Vim и изначально не работает как IDE, в нём нужно самому прописывать конфиг. Но на выходе мы получаем идеальный редактор: в нём всё устроено так, как нужно разработчику. Сейчас существует много готовых IDE-конфигов, которые идентичны по возможностям с Visual Studio Code или с редакторами от JetBrains, но превосходят их за счет скорости работы, а также за счет того, что конфиг можно настроить под себя, оставив только то, что вам нужно.
Пример персонализированных рабочих окружений:


Преимущества NeoVim
Скорость работы. NeoVim базируется на скриптовом языке программирования Lua. Это дает редактору модульность конфига и повышает скорость работы. С NeoVim не нужно ждать открытия редактора, он запускается в терминале моментально.
Горячие клавиши. Огромное преимущество NeoVim в его комбинациях клавиш. Все нужные команды всегда под рукой и не нужно лишний раз тянуться до какой-то клавиши, так как перемещение осуществляется клавишами H-J-K-L (но можно и стрелками).
Персонализация. Ни один другой редактор не дает такую свободу персонализации, как NeoVim. Вы можете собрать редактор под себя вплоть до самых мелочей или использовать чужую конфигурацию, добавив небольшие изменения под себя.
Интеграция с технологиям. В NeoVim можно подключить интеграцию с любыми технологиями, которые реализованы в других IDE. Например, lazygit для интерфейса взаимодействия с Git или wakatime для отслеживания времени кодинга.
Перейдем к установке NeoVim
NeoVim устанавливается из терминала одной из следующих команд в соответствии с вашей ОС.
MacOS
brew install neovim
Arch Linux
sudo pacman -S neovim
Debian и Ubuntu
sudo apt-get install neovim
Fedora
sudo dnf install -y neovim python3-neovim
Flatpak
flatpak install flathub io.neovim.nvim
flatpak run io.neovim.nvim
Snap
sudo snap install --edge nvim --classic
CentOS 8 / RHEL 8
yum install -y
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
yum install -y neovim python3-neovim
Инструкции для других дистрибутивов можно найти на GitHub.
После установки откроем NeoVim командой nvim
(для нашей следующей настройки рекомендуется версия NeoVim 0.8 и новее).
Поздравляем, вы открыли NeoVim! 🙂 (осталось выйти из него)
Теперь рекомендуем пройти обучение по управлению редактором, введя команду :Tutor
. При нажатии на клавишу « : » внизу появится отображение вводимой команды.
Важно: команды в NeoVim работают только с английской раскладкой.
Настройка
В корневой директории создадим папку (если не существует) .config, а внутри нее создадим папку nvim. Теперь создадим новый файл init.vim и сразу откроем его внутри NeoVim. Сделать это можно с помощью команды nvim init.vim
NeoVim поддерживает несколько режимов работы.
Командный режим (Normal mode)
Это основной режим работы в NeoVim. В нем вы можете перемещаться по файлу, удалять текст, копировать и вставлять содержимое, выполнять другие операции редактирования. Этот режим стоит по умолчанию при запуске NeoVim.
Переходим в режим редактирования клавишей “a” (латинской) и пишем следующий код:
включает взаимодействие мышью | |
включает нумерацию строк | |
включает относительную нумерацию строк. Нумерация идет относительно той строки, на которой сейчас находится курсор | |
умные проставления табов | |
определяет, каким количеством пробелов будет равен 1 таб | |
количество пробелов, используемых для отступов при выполнении операции сдвига влево или вправо | |
то же самое что и tabstop, но в режиме вставки | |
для автоматического отступа |
Сохраним изменения и выйдем из NeoVim командой :wq
(т.е. write and quit).
Теперь при повторном открытии файла в NeoVim мы увидим, что настройки применились и появилась нумерация строк:

Установка плагинов
Предварительно нам потребуется пакетный менеджер VimPlug. Установим его командой:
Возвращаемся в init.vim и добавляем две строчки в конец, после наших модулей:

Между ними будут располагаться ссылки на плагины.
Добавим первый плагин. Для этого вставим между двумя строками:

Перезаходим в файл конфигурации и пишем команду :PlugInstall
Наш первый плагин установлен, а внизу редактора мы можем увидеть полезную строку информации.
Чтобы все отображалось корректно, в настройках терминала должен стоять любой Nerd шрифт, поскольку они содержат в себе иконки. В нашем случае это JetBrains Mono Nerd Font.

Теперь добавим еще два плагина:
NerdTree позволяет открывать дерево файлов, а devicons подставляет в дереве файлов иконки, основываясь на расширении файла.
После этого переходим обратно в NeoVim и выполняем команду :PlugInstall
После модулей, которые мы указывали в начале статьи, вставим небольшой биндинг клавиш для удобного открытия дерева файлов.
nnoremap <leader>n :NERDTreeFocus<CR>
nnoremap <C-n> :NERDTree<CR>
nnoremap <C-t> :NERDTreeToggle<CR>
nnoremap <C-f> :NERDTreeFind<CR>

После nnoremap мы указываем сочетание клавиш, по которому будет выполняться команда, указанная после сочетания клавиш.
Сохраняем и заходим еще раз. После открытия NeoVim, нажимаем ctrl + t и у нас открывается дерево файлов в его базовом виде.

Теперь вы можете настроить NeoVim полностью под себя.
Полный список настроек размещен в официальной документации NeoVim. А плагины можно найти на VimAwesome.
NeoVim как IDE
Теперь мы можем сделать из нашего редактора полноценную IDE. За основу возьмем готовый конфиг – AstroNvim. Официальная документация: https://astronvim.com/
Но для начала рекомендую установить зависимости, без них конфиг может работать некорректно.
Установка AstroNvim
Создайте резервную копию текущего конфига nvim и общей папки.
mv ~/.config/nvim ~/.config/nvim.bak
Rename-Item -Path $env:LOCALAPPDATA\nvim -NewName $env:LOCALAPPDATA\nvim.bak
Rename-Item -Path $env:LOCALAPPDATA\nvim-data -NewName $env:LOCALAPPDATA\nvim-data.bak
Клонируем репозиторий и запускаем NeoVim
mv ~/.config/nvim ~/.config/nvim.bak
git clone --depth 1 https://github.com/AstroNvim/AstroNvim $env:LOCALAPPDATA\nvim
После захода в nvim у нас откроется окно менеджера пакетов и установятся все пакеты, которые есть в этом конфиге по умолчанию. Почти готово!
Установим LSP серверы для языков программирования, которыми мы пользуемся в работе. LSP серверы нужны для всплывающего окна подсказок во время написания кода.
Пропишем команду :LspInstall <язык>
В списке выбираем LSP сервер. Если в вашем случае их несколько, предварительно рекомендую погуглить какой из LSP серверов лучше. После установки появится уведомление о том, что LSP сервер успешно установлен.
Также в этом окне мы можем установить еще линтеры и форматтеры, например, Prettier.
Нажмем ctrl + f, чтобы выбрать только то, что относится к нужному нам языку.
После того, как установили LSP серверы для всех желаемых языков, закрыть окно можно с помощью клавиши Esc.
Теперь установим парсер языка, чтобы синтаксис подсвечивался.
Пишем команду :TSInstall <язык1> <язык2> <язык3> <язык4>
и перечисляем все языки, для которых нужно установить парсер.
Основная часть установки закончена. Можете открыть файл и начать писать код!
Для того, чтобы ознакомиться с комбинациями в AstroNvim – нажмите пробел, находясь в NeoVim. Всплывет окно с комбинациями клавиш. Например, поиск текста в любом из файлов вызывается путем последовательного нажатия пробел, f, w.
Мы наметили отправную точку, теперь этот конфиг можно менять под любые задачи и требования: добавлять и удалять плагины, изменять цветовые схемы, писать свои скрипты и многое другое.
Совет: плагины и сам конфиг рекомендуется периодически обновлять. Делается это с помощью двух команд:
:AstroUpdate
– обновление самого AstroNvim:Lazy update
– обновление установленных плагинов
Помимо AstroNvim, есть много других IDE подобных конфигов для NeoVim, самые популярные:
Так почему стоит потратить время и установить NeoVim?
NeoVim – это мощный текстовый редактор, который предлагает улучшенный опыт работы с текстом и множество функций для повышения производительности разработчика. Он обеспечивает быструю и эффективную работу с большими файлами, поддерживает множество языков программирования и имеет гибкую систему настройки.
NeoVim может быть полезен для разработчиков, писателей и всех, кто работает с текстом на ежедневной основе. Его удобный интерфейс, возможность автоматизации задач и широкий выбор плагинов делают его привлекательным инструментом для повышения производительности и эффективности работы.
Стоит отметить, что представленная информация является только базовой. NeoVim имеет глубокую и сложную систему настроек и функций, которые заслуживают отдельных статей для детального изучения.
Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!
Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You’ll have a chance to have your questions answered in a live Ask Me Anything format.
Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don’t miss this opportunity to engage with our team and contribute to the future of Chocolatey!
Webinar from
Wednesday, 17 January 2024
Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.
Watch The Replays
Webinar Replay from
Wednesday, 30 March 2022
At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!
Livestream from
Thursday, 9 June 2022
Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.
Livestream from
Thursday, 04 August 2022
Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We’ll talk about some cool new features, long term asks from Customers and Community and how you can get involved!
Livestreams from
October 2022
I’ve been running Vim on my Windows system in the terminal (powershell) for a little while now, but at some point since the last time I ran it it has stopped using colours for syntax highlighting etc. I do not know what caused this, but I assume it must be Powershell as line numbers are still coloured yellow, and I even uninstalled and reinstalled Vim to try to get it working again.
I don’t have any screenshots of what it looked like before, so you’ll just have to trust me that things like strings were coloured differently, but here is a screenshot of how it is appearing now.
additionally, backspace no longer works while in INSERT mode.
asked Jul 25, 2023 at 8:33
I think this is becasue I was doing some things that required I edit the .vimrc file. I ended up changing my mind and just wiped the file, but now instead of reading the default file, it was reading my BLANK .vimrc file.
I found this by looking up why backspace was no longer working in INSERT (you need to include a command in the .vimrc, which is included in the default, but was not included in my blank file obviously).
if anyone knows the line(s) that need to be included in the .vimrc to make syntax highlighting work again, that would be much appreciated! 😀
answered Jul 25, 2023 at 10:22
The vi editor, or the original Vi, is a text editor that was developed primarily for Unix-like operating systems. The orginal Vi editor is not available for Windows operating system out of the box so as an alternative, the most commonly used Vi implementation for Windows is called as “Vim”, short for “Vi IMproved”. Vim is a powerful and highly configurable text editor which is known for its extensive feature set. It is available for free download and use across various platforms, including MacOS, Linux, and Windows. This article will walk you through the steps to install and configure the Vim text editor on a Windows operating system.
The Installation Process
Step 1: Download the setup file for Vim editor from the official website
- You can download and install Vim for Windows from the official website: . Then click on the PC:MS-DOS and MS-Windows link. This will redirect you to a new page to download the installer.
Click on the gvim90.exe link to download the setup file for Vim editor for Windows.
Step 2: Execute the installer file
- Choose the installation directory and complete the installation.
Step 3: Launch the Editor
- Once the installation process has been completed, you can access the Vim text editor by either navigating to the directory where it was installed and launching it, or by using the start menu to open the editor.
- You will also receive a “GVim” edition of the editor, which represents a graphical variant of the classic command-line version of Vim. Search “GVim” in the start menu.
- You can also fire up the terminal and use the below command to open vim text editor in the current working directory.
- There is a fair chance that this command might throw a “vim is not recognized” error. This typically occurs “vim” hasn’t been added to the PATH environment variable.
Step 4: Set the Environment Variable
- Go to start menu and type “environment” and click on edit the system environment variables.
- Click the “Environment Variables” button.
- Within the system variables section double click on “Path”.
- Click “New” and “Browse” navigate to the directory where you previously installed Vim editor. In this case the path is “C:\Program Files (x86)\Vim\vim90”.
- After adding the path, Click OK to apply the changes.
Open Command prompt or Powershell, The “Vim” command shall now work and thus you have successfully installed Vim editor in your Windows PC. In conclusion, we have explored the installation and configuration of the Vim text editor on the Windows operating system. Vim, with its rich feature set and extensibility, has been successfully installed and configured to provide a powerful and versatile text editing experience.