Расскажу о том, почему я использую Neovim как основной текстовый редактор, а также о том, как я им пользуюсь.
Почему Neovim?
По сравнению с VS Code и другими IDE, Neovim очень минималистичный и простой. Единственное, что нужно знать – это то, какие клавиши за что отвечают.
После того как вы привыкаете к способу управления, появляется второе преимущество – удобство. После этого вам будет не хватать vim-раскладки в обычных редакторах.
Вопрос не в скорости
Хоть vim-раскладка увеличивает скорость печати, это не главное, так как при 10 часах дебага она вам не поможет. Дело тут именно в удобстве.
Читщит для ленивых
Команда |
Действие |
---|---|
|
перейти в NORMAL режим |
|
перемещение |
|
пол страницы вверх/вниз |
|
вверх/низ файла |
|
скопировать/вставить строчку |
|
вставить пустую строчку снизу/сверху |
|
переход в начало/конец строки |
|
сохранить (и выйти) |
|
выйти без сохранения |
Настройка
По настройке Neovim очень много статей, инструкций и т.д. Я опишу только свою конфигурацию.
Как я уже сказал, я люблю минимализм.
Из плагинов использую Telescope для навигации по проекту, Treesitter для подсветки синтаксиса и LSP для автодополнения и аннотаций. В качестве темы использую Gruvbox.
![Моя конфигурация](https://habrastorage.org/getpro/habr/upload_files/115/810/a15/115810a152f7088c5bbd0da5308d8ec6.png)
GitHub с конфигурацией если вам интересно.
Команды
Единственная сложность при знакомстве с Neovim – vim-раскладка.
В Neovim есть 5 режимов. Каждый из них нужен для выполнения какой-то отдельной задачи.
NORMAL
Основной режим. Для перехода в него нажмите либо Esc
либо Ctrl-c
.
Перемещение
h
– влевоj
– внизk
– вверхl
– вправоCtrl-d
– пол страницы внизCtrl-u
– пол страницы вверхI
– в начало строкиA
– в конце строкиgg
– в начало файлаG
– в низ файла
Окна
Экран можно разделить на несколько частей. Для того чтобы разделить экран вертикально, напишите :vs
, а для горизонтального разделения – :sp
.
![Разделение экрана](https://habrastorage.org/getpro/habr/upload_files/2be/bd1/394/2bebd1394b9dc3911943639d0cf91c8f.png)
Для перемещения между окнами у меня настроены эти клавиши.
wh
– перейти в окно слеваwj
– перейти в окно снизуwk
– перейти в окно сверхуwl
– перейти в окно справа
Вставка & удаление
o
– вставить пустую линию под текущейO
– вставить пустую линию над текущейdd
– удалить линию
Копирование
yy
– скопировать линию в буфер обменаp
– вставить скопированное
При удалении чего-либо, удаленный текст копируется в буфер обмена.
VISUAL
Позволяет выделять текст и манипулировать им.
Для того чтобы выделить текст, нажмите v
в режиме NORMAL. Также, можно выделить всю линию, для этого нажмите V
.
После выделения можно приступить к его редактированию.
d
– удалитьu
– перевести в нижний регистрU
– перевести в верхний регистрy
– скопировать в буфер обменаp
– вставить текст из буфера вместо выделенного текста.
INSERT
Обычный режим для набора текста. Тоже что и в других редакторах.
Чтобы вернутся в NORMAL, нужно нажать Esc
.
COMMAND
Перейти в него можно нажав :
в NORMAL режиме. После каждой команды для выполнения нужно нажимать Enter
.
w
– сохранить файлwq
– сохранить и выйтиq!
– выйти без сохранения
Замена текста
Находясь в VISUAL режиме, напечатайте :s/
, впишите текст или регулярное выражение которое хотите заменить, потом /
и текст на который хотите изменить.
![Screen: Replace](https://habrastorage.org/getpro/habr/upload_files/02f/03e/cc2/02f03ecc2f4423365ddc3b7df2952bc4.png)
SEARCH
Нажмите /
и впишите то, что хотите найти. После этого нажмите Enter
и перемещайтесь по найденным результатам с помощью n
.
Telescope
Помогает искать файлы по названию. Я долгое время использовал Nvimtree, но после того как установил Telescope нужда в нём пропала.
Live Grep
Live Grep – плагин, дополняющий Telescope, который помогает искать код по всей кодовой базе с молниеносной скоростью.
![Live Grep](https://habrastorage.org/getpro/habr/upload_files/364/77a/82f/36477a82f864d2711d7cb1d425b1e518.png)
Ещё плюшки
Встроенный терминал
Для вызова напишите :te
. В этом же окне откроется терминал, с возможностью использования vim-раскладки.
![Встроенный терминал](https://habrastorage.org/getpro/habr/upload_files/dc0/fb9/5a0/dc0fb95a00c7f5c5c79fdc1e608272c2.png)
Открытие больших файлов
При открытии больших файлов редактор можно запускать в чистом виде без плагинов, затормаживающих открытие и редактирование.
nvim --clean
GUI версия
Иногда использую GUI версию Neovim под названием Neovide. Люблю его из-за очень красивой анимации перемещения курсора и того что он написан на Rust.
Как выйти?
Если вам нужно выйти из редактора, просто наберите :q!
.
:wq
Надеюсь статья была полезной. Больше статей в моём блоге.
MesDes
Что мне нравилось в vim, так это удаление целой строчки командой dd, несколько нажатий и целый блок текста удален, а так пользуюсь nano, но за статью спасибо.