Статьи

Редакторы для рубистов

редакторы Для любого растущего языка всегда есть тонна инструментов, которые вы можете использовать, а также очень сильные мнения о них. Рубин не является исключением.

Есть несколько редакторов, IDE и т. Д., Которые все имеют отличную поддержку Ruby, направленную на то, чтобы вы работали на максимальной «производительности» (я не из тех сумасшедших менеджеров, которые измеряют этот вывод с помощью строк кода, так что вы можете выбрать, как определить это). В этой статье я расскажу о преимуществах, недостатках и странных моментах каждого из них, с моей точки зрения (читай: статья необъективна, но мои мнения верны, поэтому это не имеет значения: P).

Давайте начнем с классики.

Vi (м)

Ви появился в те дни, когда пропускная способность была небольшой, и люди терпеливо пользовались своими компьютерами. Он работал внутри вашего терминала / консоли, просто покусывая вашу память и процессор. Набор функций должен был быть ограничен — он выполнил несколько задач, но выполнил их чертовски хорошо. Однако ограниченный набор функций не означал, что он вас сдерживал. С его простыми и составляемыми командами vi стал фаворитом для тех, кто ценил простоту, но нуждался в гибкости и мощности.

Развитие Vi постепенно развалилось, так как в проекте стали перемещаться разные люди. Но не бойтесь, потому что Vim был изобретен! Vim — это модифицированная версия vi, которая призвана предложить больший набор функций, при этом оставаясь верной видению vi простоты и уважения опытного пользователя.

Итак, какое отношение Vim имеет к Ruby? Ну, вот где это становится немного сложнее.
Сам Vim на самом деле не имеет каких-либо особенностей, специфичных для Ruby (кроме подсветки синтаксиса), но хакеры Rails / Ruby всегда помещают консоль над графическим интерфейсом почти во всех своих решениях как сообщество. Vim полностью удовлетворяет этим требованиям. Кроме того, vim имеет ряд расширений (NerdTree, ctrl + p, vim-rails и т. Д.), Которые делают работу с приложениями Rails / Ruby приятной.

Также нет ничего лучше, чем наблюдать, как кто-то испытывает опыт работы с vi (m) — пальцы, летящие по клавиатуре, где, казалось бы, половина напечатанных символов вставлена ​​самой vim. Для тех, кто предпочитает обычный графический интерфейс для редактора, vim также включает GVim, который является версией vim, использующей GTK (инструментарий интерфейса).

Но Вим не все веселье и игры. Vim — модальный редактор, а это означает, что вы не можете просто начать печатать и ожидать, что вам будет удобно — есть довольно крутая кривая обучения. Есть три разных режима: вставка, визуальный и обычный. Вставка — это та, где вы можете печатать, визуальная — это то, где вы делаете такие вещи, как выделение фрагментов текста, а в «нормальном» режиме нажатия клавиш включают команды vim. Привыкание к такого рода соглашениям может быть очень раздражающим, особенно если вы работаете с IDE и ожидаете, что Ctrl + C скопирует, а Ctrl + V вставит (подробнее об этом позже). Одна из самых раздражающих вещей во всей модальной компоновке (для меня) — это переключение между режимами. Для этого нужно нажать клавишу выхода. Когда вы впервые слышите о концепции, режимы кажутся чем-то редко используемым. Реальность такова, что вы постоянно переключаетесь между режимами, когда используете vim, и вам приходится перемещаться по клавише выхода каждый раз. Это особенно проблема для меня, так как у меня невероятно маленькие руки; не может быть проблемой для некоторых из вас.

Затем есть синтаксис команды. Вы довольно быстро привыкаете к этому, но в большинстве случаев он лишен клавиш «Ctrl» и «Alt», в основном используется алфавит (поэтому есть обычный режим). Копирование и вставка кажутся невероятно сложными, когда вы только начинаете. Есть такие термины, как «буферы» и «регистры», с которыми, как вы думали, вы никогда не столкнетесь, пытаясь понять, как использовать текстовый редактор (всех вещей).

В общем, vi (m) — это круто, если вы можете приспособиться к нему. Для этого потребуются, по крайней мере, некоторые усилия, а также определенная решимость заставить себя продолжать использовать его (немного похоже на изучение сенсорного набора текста — нет особого смысла, если вы не делаете это все время). Кроме того, если вы пришли из IDE, не ожидайте, что некоторые IDE-подобные функции, такие как подчеркивание всех ошибок для вас — vim не предназначен для этого (помните, простота — это ключ!), Так что не надо Не ожидайте особенностей, характерных, например, для Rails.

Emacs

Конечно, теперь, когда мы поговорили о vim, нам совершенно необходимо поговорить об Emacs.

Я не очень много использовал Emacs, но у него есть довольно хорошая поддержка Ruby от сообщества. Я слышал о нескольких, кто вполне доволен Rinari , который является режимом emacs для Rails в частности. Существует множество расширений, которые делают Emacs более подходящим для разработки на Ruby, например, test-runner, который предназначен для использования с RSpec, Test :: Unit и т. Д.

Судя по тому, что я использовал, кажется, что Rails / Ruby поддерживается гораздо меньше (то есть меньше людей его используют), чем с Vim или Sublime Text 2 — это может быть проблемой, если вы столкнетесь с проблемами при настройке. Говоря лично, мои крошечные лапы не справляются с сочетаниями клавиш Erl и Ctrl и Alt, поэтому я остался в стороне от этого. Но, если вы использовали Emacs для других проектов, нет ничего плохого в том, чтобы дать ему повод для Ruby.

Если вы начинаете заново, попробуйте Vim и Emacs без установки каких-либо расширений, посмотрите, что вам больше нравится. Как только вы выбрали один, напишите несколько постов в блоге, оскорбляя тех, кто использует другого редактора — это похоже на ритуал «совершеннолетия», судя по огромному количеству таких постов.

Возвышенный текст 2

Это то, что меня очень радует, особенно потому, что это хороший графический редактор, в котором не так много наворотов, что он начинает выглядеть как Eclipse ( дрожь, которая возвращает воспоминания из Java). Он состоит из идеальной середины между чем-то вроде vim и полноценной IDE.

Я часто нахожу (особенно при работе с более крупными проектами), что vim начинает чувствовать себя немного неадекватно с точки зрения того, чтобы справляться с таким количеством файлов. Переключение между NerdTree (проводником файлов) и окном редактирования кажется утомительным, а ввод имен файлов в расширение «ctrl + p» еще более утомительным. Вот тут-то и появляется Sublime Text. Это соглашение с графическим интерфейсом, так что если вам нужно работать над SSH или чем-то еще (я не знаю, может быть, ваша компания думает, что Git и Puppet предназначены для еретиков), это может не сработать.

Первое, что вы заметите, это чистый и простой дизайн — это просто редактор и дерево файлов. Я считаю, что это невероятно полезно по сравнению с Eclipse-способом ведения дел, где каждая вещь под солнцем, имеющая какое-либо отношение к Java, имеет место где-то рядом с редактором. Вы можете заметить небольшую коробку в правой части редактора — это изумительная мини-карта. Он позволяет вам знать, где в исходном коде вы находитесь (открытие более длинного файла сделает это понятным.) Это невероятно полезно, когда вы перемещаетесь вверх и вниз по исходному коду, ища эту единственную переменную, которая продолжает устанавливать себе «false ».

ST также имеет разумную и удобную для пользователя (без особых усилий) схему вкладок, которая работает, не мешая, в отличие от vim. ST не пытается скрыть вас от «ужасов» приложения Terminal (в отличие от большинства IDE) — оно просто «сосуществует».

Есть несколько минусов. Прежде всего, если вы уже являетесь пользователем hardcore vim, привыкание к новым ярлыкам немного раздражает. Во-вторых, если вы ищете IDE, продолжайте читать, потому что это не так. Кроме того, после того, как вы завершите оценку продукта, вам придется выложить немного денег, чтобы продолжать использовать его (хотя для оценки в реальном времени нет ограничений).

Кроме того, я действительно большой поклонник Sublime Text 2, и мне нравится направление, которое выбрал проект.

RubyMine

Это тот, с которым у меня меньше всего опыта, но мне нравится то, что я вижу. RubyMine — это полноценная среда разработки, предназначенная для Ruby и Rails. Заполненный до краев завершением кода, поддержкой Javascript / Coffeescript, интеграцией с git и довольно классным GUI-тестером. Обычно я вообще отошел от IDE, но RubyMine действительно довольно интересен. Кажется, он не страдает от тех же проблем, что и Eclipse и Netbeans (слишком много всего на одном экране), и имеет довольно потрясающую поддержку.

Но, конечно, это IDE. Это означает, что, если вы работали в консоли больше, чем что-либо еще, вам это может не понравиться. Это также не самая настраиваемая среда IDE в мире (насколько я обнаружил), поэтому, если вам нужна вся магия плагинов Eclipse, это может разочаровать.

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

Завершение

Надеюсь, вам понравилась моя сводка некоторых инструментов, которые Rubyists используют для достижения цели. Самый простой способ составить мнение об одном из них — это выбрать один, полностью с ним ознакомиться, а затем попытаться изменить его. Если изменение будет приятным, возможно, вы нашли лучший вариант. Если это не так, просто откат! Чтобы получить дополнительные очки, пишите в блоге издевательства над издателями, которые вам не нравятся, и людьми, которые их используют.