Ну, ты решил изучать Руби? Замечательно! Ruby — замечательный язык, цель которого — сделать программистов счастливыми. Действуй! Когда вы входите в мир Ruby, вы понимаете: «Мне нужен редактор». ОК, Google, найди мне лучший редактор Ruby.
Святой дым! Существует множество редакторов, каждый из которых имеет сообщество, которое ругается на свои функции. «Используйте vim!» «Используйте Emacs!» «Используйте TextMate!» «Используйте Sublime Text!». Вы отшатываетесь в страхе … что если вы сделаете неправильный выбор ???
Этот короткий рассказ, который, вероятно, относился ко многим Rubyists, вдохновил меня на интервью с установленными Rubyists об их лучшем редакторе Ruby. Если ничего другого, это покажет, какие редакторы используются большим количеством Rubyists, с некоторыми данными о том, почему. Я надеюсь, что он послужит руководством для новичков в Ruby или, возможно, даже для тех, кто уже работает с Ruby, популярностью пользуются редакторы.
Я говорил с 100 рубистами. Интервью подняли следующие редакторы (даны в порядке предпочтения):
- напор
- Возвышенный текст
- Emacs
- Атом
- TextMate
- сакура
- Pico
Vim, безусловно, был наиболее предпочтительным редактором, так как его использовали 50% опрошенных. Графики ниже рассказывают историю:
Я говорил с двумя из самых известных Rubyists: Юкихиро Матусмото (Matz) и Дэвид Хайнемайер Ханссон (DHH). Если вы не знаете, Matz является создателем языка Ruby, а DHH отвечает за Ruby on Rails. Мац предпочитает Emacs , в то время как DHH использует оригинальную версию TextMate . Мне очень интересно, что в двух столпах Ruby не используется самый популярный редактор, что, безусловно, следует учитывать при выборе набора инструментов.
В любом случае, Vim получает награду «Most Used Ruby Editor» за мой набор образцов. Vim был написан Брэмом Муленааром и впервые выпущен для публики в 1991 году. В сети нет статей о Vim, в том числе две очень хороших здесь, на SitePoint. Ислам Wazery написал Начало работы с Vim и Эффективная разработка Rails с Vim , оба стоит прочитать, если вы выбираете проторенный путь.
Но что же делает Vim таким особенным? Ну, ответ «много, много вещей». Я выберу пару пунктов из статьи под названием « Отличные возможности Vim», в которую вошли вклады многих пользователей Vim, чтобы попытаться донести эту мысль до дома.
Стефан Хубан утверждает, что одной из особенностей Vim, которую он любит, является макро-функция. На первый взгляд эта функция может показаться не такой уж особенной. q[letter]
q
Макрос вызывается набрав @[letter]
Но только тогда начинается самое интересное. Допустим, я хочу создать макрос, который выполняет следующие действия: перейдите на одну строку вниз и замените первое и второе слово. Используя стандартные команды Vim, это можно выразить как: j^dwwhp
Запись этой последовательности в макрос под названием @a
Теперь вы можете повторить макрос для всех строк в файле, если хотите. Неплохо!
Входит Стефан Торн и говорит: «Это хорошо, но идиома может быть значительно улучшена с помощью: g».
Например, у вас есть макрос для изменения второго слова в строке на «foo» qb^wcwfoo<esc>q
Теперь визуально выберите блок, который вы хотите выполнить макрос. Не дергайте выделение, однако, вместо этого нажмите :
:'<,'>
Затем добавьте g/^/normal @b
:'<,'>g/^/normal @b
(Примечание. Предполагается, что записанный вами макрос был сохранен с буквой «b».)
Это выполнит макрос для каждой строки в визуальном блоке. Сложно объяснить, но это удивительно быстро, когда вы познакомитесь с визуальным режимом и :g/
Другой участник этой статьи сравнивает некоторые функции с Emacs:
«ИМХО, единственной наиболее полезной функцией VI, которой нет в Emacs (AFAIK), является. (точка) команда, которая повторяет предыдущую операцию. (т.е.: предыдущая вставка, замена слова, удаление слова,…). Это заставляет вас понять, почему VI является модальным редактором ».
(Стоит отметить, что пользователи Emacs ответили на это утверждение, что является еще одной причиной, чтобы прочитать его.)
Наконец, я хотел бы выделить еще один комментарий о чьих-то предпочтительных функциях в Vim:
Я определенно ценю следующие особенности vim:
- неограниченное количество отмен
- редактирование истории ex-команд (введите некоторые ex-команды, нажмите: и используйте клавиши со стрелками)
- редактирование истории поиска команд инкрементального поиска
- стойкие отметки
В то время как у Вима есть ведущее лидерство в числах, это — только одно соображение. У тебя есть мнение? Любовь Вим? Использовать возвышенный текст? Какой ваш лучший редактор Ruby?