Колдовской NeoVIM. Часть первая. «Neovim VS Ваша IDE, или долой мышей!»

Neovim (aka Nvim) — это не обычный текстовый редактор, а программа, которая позволяет вам превратить свой рабочий процесс в изящный танец или фортепианную партию.

Фишкой колдовского редактора является то, что вы общаетесь с ним не через аналоговое управление (двигаем мышкой, вводим текст), а через команды и макросы.

Зачем заморачиваться и пользоваться текстовым редактором через код?

Потому что это чертовски быстро!

Просто представьте:

  • В Nvim мышка включается отдельной командой в конфиге. Но обычно ее не включают — лень-матушка.

  • Возможно, что у повстанцев с Навуходоносора на компьютере стоял именно Nvim. Он гибкий, и позволяет редактировать не только текст, но и код Матрицы…

  • Документация максимально подробна и понятна.

  • Выйти из Nvim’а не легче, чем уйти из мафии. Новички, впервые запустившие колдовской редактор, обречены годами скитаться в поисках заветного «Exit»…

Ну что, молодые маги, добро пожаловать в Колдовской Nvim!

Почему вам стоит выбрать Neovim?

По моему мнению, у редактора 3 киллер-фичи:

  1. Супер-Скорость

  2. Невероятная гибкость

  3. Nvim растет вместе с Пользователем

Супер-Скорость

2a6a57b57ee42f11ef29f02d083736ef.jpg

Nvim молниеносно быстр. И сложен в освоении. И в этом нет ничего плохого. Например:

Представьте, что вы только сегодня познакомились с консольными командами. И вы соревнуетесь с обычным Юзером с клавомышью и GUI интерфейсом.

Вам нужно создать папку!

Юзер наводит мышку, жмет правой кнопкой, выбирает «Создать папку» — и выигрывает, пока вы копошитесь в мануале…

Реванш через месяц

Через месяц? Через месяц скорость будет примерно одинаковой — вы просто наберете «mkdir papka» и создадите папку. Юзер пожмет плечами и пойдет дальше. Он не проиграл.

Задачи посложнее

  • А если надо создать сразу 6 папок?

  • А если выбрать из папки все файлы с определенным расширением?

  • А если сделать скрипт, который будет разворачивать в определенном месте целое дерево папок с файлами (например исходники для проекта).

Вы и ваша консоль побеждаете, потому что обычный Юзер либо тратит очень много времени, либо попросту неспособен справиться с заданием.

Думаю, что аналогия понятна. Да, первые пару недель с Nvim будет тяжело…, а через пару месяцев вы вдруг осознаете, что обычная IDE кажется вязкой, медленной и сковывает полет ваших мыслей.

В Nvim вы нажимаете несколько клавиш и за секунды выполняете объем работы/передвижений, который бы занял минуты в обычном редакторе. А любой программист понимает, что сэкономленное время = время заработанное.

Давайте посмотрим на примере. Вот код, который вы хотите исправить:

Этот код выглядит плохо!Этот код выглядит плохо!

Обратите внимание, на каком символе находится курсор (второй символ 16й строчки). Итак, мы нашли себя вот в такой тестовой ситуации. Что мы хотим сделать?

  1. Имя функции переписать строчными буквами.

  2. Удалить лишние символы «kkk» на 18й строчке.

  3. Скопировать всю функцию big_and_ugly_name1() и перенести ее на 21ю строчку, попутно удалив комментарий. Да, нам надо 2 одинаковых функции. И не забудем поменять постфикс!

  4. Удалить функциюunused_function()

  5. После этого удалить самую первую строчку, а еще 3 строчки после импорта.

  6. Прыгнуть в самый конец, и написать на новой строкеprint(”Hello World!”)

Заметим, что из всей работы созидаем мы только при написании последней строчки print(”Hello World!”). Все остальное — непроизводительный труд.

Вы можете попробовать самостоятельно засечь время на решение этой задачи. А можете добавить чуть-чуть колдовства… Введем в Nvim следующие команды:

guu 2jfkD yip 21G SHIFT+v jp f1CTRL+a 11Gdip ggdd jv4jd Go'Hello World!'

9547bf73fc436385fa8634713b931e04.png

Бррр, абракадабра, да как такое запомнить? Но набор такой команды в разы быстрее, чем клавомышь. И мышки дорогие.

Давайте разберемся. Только что я:

  1. guu Превратил все символы на 16й строке в строчные (lowercase). Заметьте, что курсор находился на втором символе — мне даже не пришлось его двигать к названию функции.

  2. 2jfkD Перешел на 2 строчки ниже, прыгнул на первую букву k и удалил все оставшиеся символы.

  3. yip Скопировал всю функцию. Обратите внимание — я скопировал ее изнутри самой функции! Мне не пришлось наводить курсор или мышь на первый-последний символ.

  4. 21G SHIFT+v jp Прыгнул на 21ю строку и вставил скопированную функцию, попутно удалив комментарий.

  5. f1 CTRL+a Прыгнул к единичке и с помощью CTRL+a увеличил ее на один! Ваша IDE умеет такое?

  6. 11G dip Прыгнул на 11ю строчку, опять в середину функции, и всю ее удалил, не перемещая курсор.

  7. ggdd Прыгнул на первую строчку, удалил её.

  8. jv4jd Перешел на строчку ниже импорта, выделил 4 строчки и удалил их.

  9. Go"Hello World!" Прыгнул на последнюю строчку в файле. Создал еще одну строку ниже и написал в ней «Hello World!»

При этом я ни разу не тронул мышь, ни разу не убрал руки с центра клавиатуры, не отводил глаз от экрана и контролировал каждый шаг. Вот поэтому Nvim по-колдовски быстр!

Невероятная гибкость

d9bc155ba87fd317089aa35b86c56e28.png

Nvim никак вас не ограничивает:

  • Используйте любой язык программирования. LSP серверы — в наборе. Все подключается за секунды.

  • Огромное количество плагинов на выбор. Большое комьюнити, которое пишет эти плагины.

  • Nvim легко взаимодействует с Github.

  • Подключитесь к другой машине через SSH, скачайте Nvim (20 мегабайт), вставьте свой конфиг и у вас тут же появится привычная среда разработки.

  • Используйте любые самописные скрипты. Например, у меня есть маленький скриптик, который обернет выделенный текст в фигурные скобки. Мелочь -, но удобная!

  • Редактор бесшовно переходит в консоль и обратно. Прямо из редактора доступны консольные команды и скрипты. Nvim является естественным продолжением терминала Linux и прекрасно дружит c tmux.

  • Nvim работает с любыми файлами. Более того, он открывает даже самые большие и тяжелые файлы!

Nvim растет вместе с Пользователем

3b85ef8a9bf9b7ed0eac632469bf5500.jpg

Он как зернышко! Сначала будет небольшой росток, его надо оберегать и поливать. Потом росток станет деревцем, а затем огромной секвойей.

Nvim воплощает один из ключевых принципов мышления программиста:

Не делай ничего дважды!

Столкнулся с проблемой — реши ее так, чтобы в следующий раз у тебя было готовое автоматизированное решение. Нвимисты и нвимастера с каждым днем упрощают свою жизнь. Любые сложности и проблемы делают ваш конфиг удобнее, навыки — разнообразнее, а мышку более пыльной. Время, которое вы тратили на пустые действия, теперь вы сможете тратить на программирование. И это по-колдовски круто!

В следующей части данного руководства мы установим Nvim и познакомимся с конфигурационным файлом.

© Habrahabr.ru