В современном мире разработки, особенно в веб-разработке, разработчики все чаще используют удобный текстовый редактор и терминал вместо полноценной IDE. Первые имена, которые приходят на ум, - Sublime Text, Atom, TextMate и Visual Studio Code.

Vundle

Мой друг сказал мне, что, когда он переключился на Vim, он хотел привлечь его к ответственности за все то, к чему он привык в Sublime. Так что я использовал тот же подход.

Шаг 1. Найдите замену Sublime Package Control - Vundle

Шаг 2: найдите хороший список плагинов - vimawesome

Шаг 3: сходите с ума с моим .vimrc, чтобы добавить привычные мне сочетания клавиш.

.vimrc

Файл .vimrc работает очень похоже на файлы .bashrc или .bash_profile. Его цель - сообщить Vim, какие настройки следует использовать при каждом запуске. Кроме того, плагины Vundle входят в .vimrc. Вот мой: https://github.com/jwkicklighter/dotfiles/blob/master/vim/vimrc

Достаточно ли плагинов?

Я знаю, что собираюсь рассердить здесь некоторых людей, но нет, это не так. Поддержка плагинов невероятна, и я смог заставить vim выполнять то, что я действительно не думал, что это возможно. Более того, возраст и доступность vim означают, что существует много подключаемых модулей. Но иногда этого просто недостаточно.

Не поймите меня неправильно, MacVim стал моим текстовым редактором по умолчанию, и мне он нравится в большинстве случаев использования. Но некоторым проектам действительно нужна IDE. Это не вина vim, я просто не могу попытаться работать над Android-приложением любого размера с помощью текстового редактора и терминала. Это касается любого приложения Java, если на то пошло.

Почему это не имеет значения

Побочным эффектом использования vim всего несколько недель является то, что я сразу же ожидал, что клавиши перемещения и различные команды vim будут работать везде, где я мог вводить текст. Работая над Android-приложением в Android Studio или над проектом Rails в RubyMine, я не могу сосчитать, сколько раз я нажимал «‹ESC›: w» в ожидании сохранения проекта. Я часто добавляю длинные строки j’s и k’s в свой исходный код, прежде чем понимаю, что мой курсор никуда не движется. Vim научил меня делать что-то по-новому, и это здорово.

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

Использование vim заставляет меня постоянно думать о том, что я делаю. Конечно, я [обычно] думаю о коде, который пишу, но в этом есть что-то другое, когда каждый набор нажатий клавиш может быть более эффективным, если заранее продумать правильную мысль. Вы не можете научиться использовать vim, глядя на схему раскладки клавиатуры. Это требует практики. Я не говорю, что сходите с ума и анализируйте каждое свое движение до такой степени, что ваша продуктивность упадет; Я использую гораздо больше вверх / вниз / влево / вправо, чем если бы я думал о каждом движении немного дольше. Но иногда я решаю подумать о поиске / замене или вырезании / вставке, прежде чем действовать, и в результате узнаю что-то действительно интересное.

Дело в том, что vim был построен из-за vi. А особенность vi в том, что он старый. Я имею в виду старый. Мы говорим здесь 40 лет. Это означает, что клавиши и команды хорошо известны сообществу разработчиков. Это также означает, что почти в каждом текстовом редакторе и среде IDE есть способ имитировать некоторые формы клавиатурных ловушек vim. Многие из них даже имеют официальные плагины или встроенные режимы vim (Sublime Text, Atom, весь набор IDE на основе IntelliJ). Я сразу же загрузил плагин IdeaVim для RubyMine, Android Studio и IntelliJ IDEA и через свои собственные ярлыки в файл .ideavimrc.

Поэтому я рекомендую вам потратить немного времени на изучение vim и заставить его работать на вас. Это непросто, и вы разочаруетесь. Люди, которые использовали редактор в течение многих лет, до сих пор дублируют и переделывают часть своего набора текста, чтобы понять, как они могли бы использовать vim для более быстрого редактирования. Но вы можете обнаружить, что вам действительно нравится результат, как и мне.