После нескольких лет полномасштабного господства IDE, Vim снова стал популярным. Распространение многих динамических и лаконичных языков программирования ослабило преимущества IDE, и двадцатилетний текстовый редактор является одной из альтернатив.
Vim для всего
Я пишу эту статью в Vim. Этим утром я добавил в свой .vimrc следующее:
inoremap <Up> <NOP> inoremap <Down> <NOP> inoremap <Left> <NOP> inoremap <Right> <NOP>
noremap <Up> <NOP> noremap <Down> <NOP> noremap <Left> <NOP> noremap <Right> <NOP>
Возможно, вы знаете, что эти директивы отключают клавиши со стрелками для перемещения по файлу (буфер, извините), вынуждая пользователя придерживаться (в первый раз) клавиш HJKL во всех режимах или изучать более эффективные способы перемещения.
Например, за первые несколько минут я научился использовать w и b для перемещения вперед и назад между словами; через некоторое время этот e отправляет вас в конец следующего слова вместо его начала, как два других.
Отказ от клавиш направления может быть травмой, но, вероятно, это часть религии Vim … Однако, хотя большинство конвенций ориентированы на то, чтобы держать вас рядом с домашним рядом и избегать комбинаций клавиш, вы всегда должны рассуждать об их цели. Например, переназначение; to: предложение, которое следует применять только к раскладкам клавиатуры в США.
(Программирование) языковые различия
На самом деле, я не думаю, что буду очень продуктивным пытаться написать нетривиальный код Java без Eclipse или другой IDE. Причина в том, что Java — это язык, который приветствует IDE.
Это многословно, поэтому создание большей части кода с помощью IDE экономит время:
Map<String,MyValueObject> objects = new HashMap<String,MyValueObject>(); // plus the imports
Все это может быть сгенерировано из object = new HashMap <String, MyValueObject> (); даже импорт. То же самое касается проверенных исключений и обязательных предложений try / catch или throws.
Java также статически типизирована, поэтому она обеспечивает безопасный автоматизированный рефакторинг: метод извлечения и интерфейс извлечения находятся на расстоянии одного клика, так как вы можете манипулировать кодом на более высоком уровне абстракции, чем символы строки. К сожалению, некоторые рефакторинги, такие как Extract Class, часто не работают так, как вы хотите, и это приводит к тому, что код предпочитает частные методы новым сотрудникам.
Генерация и регенерация кода могут быть проблемой: зачем проверять импорт и зависимости, если одним щелчком мыши вы можете исправить все из них (это в некоторой степени скрыто в Eclipse, но я помню, как организовать все команды импорта.) Что полезно во время рефакторинга переименования, может быть подавленным предупреждением при перемещении классов.
Взять вместо этого PHP или Ruby (или Scala, который на самом деле типизирован):
- они лаконичны : вам не нужно генерировать кореографию, такую как определения типов полей.
- Для большинства динамических языков надежные автоматические рефакторинги в любом случае недоступны , поэтому вы выполняете их вручную или используете функцию поиска и замены в качестве инструмента наивысшей абстракции.
Даже когда Vim не подходит, я вижу, что многие PHP-программисты выбирают SublimeText или TexTMate, которые являются родом Vim, а не Eclipse и Netbeans. Интегрированные среды разработки могут создавать динамический код для автозаполнения, а помощь связана с наличием в комментариях методов доклблоков.
Мой единственный совет Vim
Если вы хотите узнать, как эффективно использовать Vim, не читайте кучу статей, полных советов: их уже слишком много, и обычный человек не может вспомнить из них много (поэтому я не делюсь ни с кем Vim фу переехать сегодня).
Единственный способ изучить ходы Vim — это использовать его: я знаю два пути для достижения этой цели.
Первый — это печать : я печатаю статьи, содержащие советы или чит-листы, и держу их на своем столе, пока не усвою ярлыки. Старомодные, но стимулирующие случайные акты обучения, которые накапливаются с течением времени.
Второй — делать упражнения : vimtutor необходим всем, кто начинает с Vim, так как он обучает вас командам перемещения, копирования и вставки, которые навсегда останутся с вами. Это очень низкотехнологичная форма упражнения, так как это просто копия шаблона .txt документа, над которым вы работаете в сеансе Vim. Поскольку vimtutor действительно прост, существуют также расширенные версии, ориентированные на более опытную аудиторию.
Я всегда скептически отношусь к навязчивым идеям, таким как изучение каждой функции редактора или всех команд git. Тем не менее, время, потраченное на улучшение нашего использования редактора, дает хороший возврат инвестиций; это как деньги, потраченные на лучшую клавиатуру.