** Примечание: в этой серии я буду использовать NeoVim. Я расскажу почему ниже. Но 99,99% всего, что я описываю, будет работать в Vim8 точно так же. Итак, если вы предпочитаете использовать Vim8, вы все равно можете многому научиться! С этого момента я буду использовать Vim и NeoVim как взаимозаменяемые, если не буду замечать различий.
Что такое Vim?
Однажды я, любитель собак, разговаривал со своим другом, любителем кошек, о кошках и их общем пренебрежении к человечеству. Именно тогда он сказал то, что я никогда не забуду. «Чего вы не понимаете в кошках, так это то, что они не собаки». Вау. Глубокий. Он имел в виду, что если вы подойдете к кошке так же, как к собаке, это просто не сработает. С этим в мыслях:
Дело в том, что Vim не является IDE.
Vim - это не IDE, это текстовый редактор. Это молниеносный, многофункциональный текстовый редактор с большим количеством секретов, чем Хогвартс, и я бы сказал, что после небольшой настройки он может стать таким же хорошим, если не лучше, чем ваша текущая IDE.
Я работаю разработчиком программного обеспечения около 2,5 лет, а в течение последнего года я использую Vim в качестве «ежедневного драйвера». Около 80% моего времени я трачу на Javascript, а остальные 20% - на Python. До использования Vim я использовал VS Code и IntelliJ IDE (в моем случае WebStorm и PyCharm). Все отличные инструменты, но у всех были свои слабости, и я задавался вопросом: «А есть ли что-нибудь лучше?».
Я начал замечать, что некоторые супергерои-программисты (вы знаете, какой тип) в моей компании использовали Vim. Сначала я подумал, что это то, что они использовали, потому что они супергерои. Но вскоре я начал задаваться вопросом, были ли они супергероями из-за того, что использовали Vim. Что ж, правда в том, что Vim не сделает вас 10-кратным разработчиком сам по себе, но если вы потратите время на изучение его способов, это, безусловно, может помочь (или не повредить). Если вы готовы сделать решительный шаг, читайте дальше.
Что я ищу в среде IDE?
Есть некоторые ключевые особенности IDE, которые настолько повышают производительность, что я не могу обсуждать их в среде разработки.
- Автозавершение кода / Intellisense
- Перейти к определению функций / переменных / и т. Д.
- Справочная навигация и поиск
К концу этой серии статей мы будем использовать возможности подключаемых модулей Vim, чтобы расширить их функциональность и охватить все эти функции.
Зачем использовать Vim?
Как мы увидим в этой серии статей, есть много причин использовать Vim. Это повышает продуктивность, это супер круто (ладно, может быть, только разработчики могут так думать), но я думаю, что самое главное, это чертовски повсеместно. Шутки в сторону. Vim везде. Он поставляется с предустановленной почти на каждом компьютере (конечно, Mac и Linux, и я был бы шокирован, если бы не Windows). Это на серверах Linux, к которым вы подключитесь по SSH. Он находится на древнем кирпичном компьютере, который случайная компания может попросить вас лично написать код для собеседования. Если в вашем распоряжении есть Vim, вы эффективны независимо от настройки оборудования.
Последний пункт может показаться натяжкой. Я имею в виду, надеюсь, вы не используете SSH в рабочих серверах и не пишете код прямо на них очень часто (хотя это действительно происходит, и в такие моменты, поверьте мне, вы хотите быть быстрыми). Но это гораздо больше. Чтобы действительно быть сверхмощным разработчиком, вы должны быть суперпользователем своей среды разработки. Конечно, компания, в которой вы сейчас работаете, предоставляет набор продуктов IntelliJ, и вы знаете каждый уголок WebStorm. Но ваша следующая компания может не платить за IntelliJ, и что тогда? Или вы уверены, что являетесь мастером в VS Code, и он бесплатный и с открытым исходным кодом, так что нет причин, по которым вы не можете его нигде использовать? Может быть, ваша следующая роль будет связана с правительством или другим крупным предприятием, вы будете удивлены, каково это получить разрешение на загрузку программного обеспечения в некоторых из этих мест. Даже если это бесплатно.
Это действительно потрясающая вещь в возможностях Vim. Куда бы вы ни пошли, вы можете быть уверены, что сможете сразу же приступить к делу.
Vim против NeoVim
Я знаю, что только что всем сердцем проповедовал, что Вим является его секретным оружием. Но у меня есть признание. На самом деле я использую NeoVim.
Но почему? NeoVim не везде? Что дает!?
Это правда, что NeoVim есть не везде. И, честно говоря, на данный момент. На самом деле нет разницы между Vim8 и NeoVim. Причина, по которой я использую NeoVim, - это скорее долгосрочная и принципиальная философия, а также долгосрочное мышление. NeoVim поддерживается большим сообществом разработчиков, и поэтому он очень сильно зависит от сообщества. С другой стороны, Vim поддерживается небольшим ядром разработчиков (коэффициент шины, jk). А если серьезно, то сейчас их почти не отличить. Фактически, я буду использовать NeoVim для этой серии, но 99,99% советов и приемов, которыми я делюсь , будут точно так же работать в Vim8.
Причина, по которой я выбираю NeoVim, заключается в том, что сегодня они в основном идентичны, но однажды они могут не стать. Я планирую быть разработчиком в течение многих лет, и я бы предпочел положить свои яйца в повозку, управляемую сообществом (не уверен, что я прибил эту метафору).
Почему я написал это? Нужен ли нам еще один учебник по Vim?
Я прочитал все сообщения в блоге Vim. Я смотрел все видео по настройке на YouTube. Я во всех сабреддитах. Несмотря на то, что существует масса отличного контента, я часто обнаруживал, что ключевые детали умалчиваются, а концепция не объясняется полностью. Моя цель - научить вас всему с нуля. Каждая команда будет объяснена полностью. Каждая строка init.vim / .vimrc будет объяснена. Вы будете знать свою настройку Vim от и до.
Чему вы можете научиться из этой серии статей?
Вы можете уйти из этой серии с:
- Практическое знание vanilla Vim (команды, мнемоника, буферы, режимы и макросы)
- Возможность настройки вашего Vim с помощью файла конфигурации (.vimrc / init.vim)
- Знания для улучшения вашей настройки Vim с помощью плагинов.
- Уверенность, чтобы начать использовать Vim в повседневной работе.