До 30 ноября

Скидки до 81 000 руб и вторая профессия в подарок!

Главная | Все статьи | Дневник студента

Как я установил neovim на WSL2

Время чтения статьи ~3 минуты
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Как я установил neovim на WSL2 главное изображение

Вдохновившись мнением авторов курса «Основы командной строки» о редакторе vim (мемы о кривых обучения были смешные!), я погрузился в его самостоятельное изучение. Собрал в сети данные, написал простую конфигурацию .vimrc, и без проблем справился с первым проектом в курсе по Python — запомнил ряд стандартных команд и даже привык почти не использовать стрелки! Однако, приступив ко второму проекту, я подумал, что меня не устраивает ни скорость моей работы, ни интерфейс редактора. Так я решил попробовать установить сборку neovim, рекомендованную Хекслетом.

Сам процесс установки оказался нетривиальной инженерной задачей для человека со скромным опытом работы с Linux :) Поэтому, на случай повторения процедуры, я собрал все возникшие проблемы и их решения в этой статье.

Параметры системы:
WSL version: 1.0.3.0, Ubuntu, WSL2
Windows 10.0.19044.2486

Установка старой версии neovim

Первое препятствие, с которым я столкнулся, — sudo apt install neovim устанавливает на мой компьютер версию 0.4.3, несовместимую со сборкой. Оказалось, что apt и вовсе не подключается к интернету, возникают ошибки Temporary failure resolving... Помогла замена DNS-сервера в файле /etc/resolv.conf, как описано в ответах на StackOverflow.

Отсутствие подходящих шрифтов

Я успешно скачал neovim v.0.9.0, а также zsh и Oh My Zsh, как рекомендовано в репозитории dotfiles, после чего установил сборку по инструкции. По открытии neovim глазам моим предстало печальное зрелище:
enter image description here

Правильная кодировка прописана в конфиге, поэтому дело не в ней. Оказалось, что необходимо поставить шрифт, отображающий иконки. Такие шрифты можно найти здесь.

Устанавливаются шрифты не через консоль и не в Ubuntu, а напрямую в Windows. Для этого скачиваем архив со шрифтом, распаковываем, кликаем правой кнопкой мыши на файл шрифта и жмём "Установить". Не все шрифты поддерживаются терминалом, и не все — отображают полный спектр необходимых иконок. Мне подошёл шрифт Meslo.

Закончилась память

Мой диск C в целом не очень объёмный, на нём обычно не более 12 Гб свободной памяти. После установки сборки dotfiles места почти не осталось. Мне на данный момент vim необходим как редактор Рython, поэтому я решил удалить часть языков, которые поддерживаются в сборке. Так, удалению подверглись объёмные папки с ghcup, cabal, а также rust — через sudo apt remove rustc. Вроде ничего не сломал :) Кстати, разобраться, какие папки самые объёмные, помогла очень полезная утилита

ncdu --exclude mnt

Она тоже есть в сборке. После этих действий места, увы, больше не стало. Потому что образ WSL не может сам освобождать память, ему необходима помощь! Чтобы её оказать, заходим в PowerShell и пользуемся утилиту diskpart. Именно таким образом мне удалось отвоевать свои 10 Гб.

Смена дефолтной цветовой схемы

Цветовая схема прописана в конфиге, который можно найти в директории ~/.config/nvim. Для изменения нужно отредактировать файл colorscheme.lua. В сборке используется цветовая схема Material, у которой есть 5 симпатичных вариантов. Мне не понравилась уже выбранная "deep ocean", поскольку она слишком тёмная, я выбрал "palenight". Для этого в конфиге я отредактировал строчку:

vim.g.material_style = "palenight"

Копирование из vim в буфер обмена

Очень полезно иметь возможность скопировать код из vim в буфер обмена, особенно при наличии двух операционных систем на одном экране. «Из коробки» эта опция не работала. Если в нормальном режиме neovim набрать команду :healthcheck, можно узнать много интересного о текущей сборке neovim. В частности, в подразделе Clipboard (optional) я нашёл список подходящих утилит, решающих обозначенную выше проблему. Я установил xclip: sudo apt install xclip. Теперь команда "y копирует информацию в буфер обмена!


enter image description here

Проделав описанные действия, я полностью доволен и функционалом, и внешним видом. Теперь разбираюсь со вторым проектом в курсе Python уже в новом редакторе :)

P.S. Поменять местами ctrl и capslock мне так и не удалось, но пока и так удобно.

Аватар пользователя Игорь
Игорь 20 января 2023
1
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 28 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 28 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 28 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 28 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 28 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 28 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 28 ноября