Цветовая схема
Alex Four
19 янв. 2025

✍️ Сочинение: Как я провел заму. Часть 2

Вторая идея, которую я решил осуществить перед тем, как погрузиться в программирование, — сменить текстовый редактор. На самом деле, это решение плавно и логично вытекает из предыдущего поста.

🎯 Цель вторая — перейти на VIM.

Я уже делал несколько попыток полностью перейти на него и даже как-то писал об этом. Но с тех пор VIM для меня так и не стал основным редактором.

❓А зачем вообще на него переходить?

У клавиатуры из предыдущего поста и у VIM одна философия. Я называю её Handle Row или Удобный ряд. Это — ряд клавиш, на которые кладутся пальцы при слепом десятипальцевом наборе текста (там ещё есть рисочки на клавишах F и J). Так вот, физиологически нам удобно работать с двумя рядами выше и ниже Handle Row. До остальных клавиш нужно тянуться, передвигая кисть, а потом смотреть на клавиатуру, чтобы вернуться в исходную позицию. Особенно большая проблема со стрелочками, поэтому их использование в VIM считается моветоном.

🤘В общем, чтобы было удобно, нужно весь функционал перенести на "удобные" клавиши.

В клавиатурах с небольшим набором кнопок это решается слоями, а в VIM — режимами. На чтение — один режим, на редактирование — другой, на выделение текста — третий. При этом в зависимости от режима меняется предназначение кнопок, и их сочетания выполняют разные задачи. Ну а за 33 года разработки редактор оброс огромным количеством горячих клавиш, дополнений и расширений. В нём можно кастомизировать и настроить всё, что угодно, особенно если знаешь, чего хочешь.

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

🙈 А тут всё равно переучиваться на новую клавиатуру, так почему бы не освоить сразу и VIM?

Я открыл рабочий VS Code, нашёл простенькую багу в беклоге и починил её, попутно выписав функции и плагины, которыми пользовался. Далее я решил сделать это в VIM и записать в шпаргалку.

Сказать, что это было нелегко — ничего не сказать. Мне кажется, что я потратил два дня только на настройку проверки орфографии так, чтобы она работала для всего кода, понимала camel и kebab нотации, и русский и английский текст...

🗓️ Но на третий день всё как-то запустилось, и я с удивлением обнаружил, что основные команды я запомнил. По большому счёту они ведь логичны. Да, я иногда путался, и, особенно к вечеру, срывался на привычные комбинации, но дело сдвинулось.

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

Работу в VIM можно назвать метапрограммированием.

Передо мной задача, например, изменить опечатку в переменной. Я могу:

🤙 перейти на начало этой переменной через горячую клавишу, потом удалить слово и вставить правильное;

🤙 повторить это действие, записав быстрый макрос, или воспользовавшись функцией повтора последних сочетаний команд;

🤙 ввести :%s и далее ввести регулярку, которая заменит текст;

🤙 как в VS Code, воспользоваться функцией рефакторинга и просто переименовать переменную.

👨‍💻 Согласитесь, очень похоже на поиск лучшего решения в программировании.

🪛 В VIM полноценно раскрывается философия UNIX: "Твоя программа должна выполнять одну задачу, но делать это хорошо". Ну а UNIX берет на себя задачу по объединению этих команд.

🛠️ Другой момент, который я заметил, — это лучшее понимание тулинга, который я использую. Открывая VS Code и особенно IDEA, я не задумываюсь, как происходит подсветка кода, как происходит линтинг и претифаинг кода. Оно просто как-то работает из коробки. А вот VIM из коробки всего этого не умеет. Ну а пока настраиваешь — разбираешься в этом. Я не скажу, что это сильно сложно.

🧠 Ну и напоследок: проекция рук в мозгу самая большая. Именно поэтому я встречал советы развивать мелкую моторику, чтобы улучшить когнитивные свойства мозга. VIM ломает устоявшиеся паттерны, заставляя мозги работать. Даже если не перейти на него совсем — это очень хорошая практика.

Продолжение в следующем посте...