Последние пару недель, я активно заинтересовался ruby, книга Хэла Фултона, купленная уже достаточно давно ждала своего часа, час, кажется пришел. Пользуясь некоторым затишьем на работы, стал понемного вникать в основы этого чудо-языка. Первые ощущения - это такая себе смесь perl'а и python'а с присущей perl'у выразительностью и компактностью, и python'овским простым, относительно синтаксиса, ООП. То что видел - понравилось, думаю, что некоторые задумки буду делать на ruby. В связи с этим всем, в очередной раз решил посмотреть чего там есть интересного для ruby в мире текстовых редакторов.
Textmate - наверное один из самых популярных редакторов для OS X, предлагают купить за 39 евро. Есть своеобразный "младший брат"(хотя никакого кровного родства насколько я помнимаю нет) - textwrangler - за бесплатно. Ничего особо хорошего или особо плохого по поводу сказать не могу - неплохие текстовые редакторы, с подстветкой синтаксиса, с возможностью эту подсветку настроить как хочется, с некоторыми полезными фичами собственно для разработки - типа коментирования выделенной области кода, автодобавления скобочек, и так далее и тому подобное. У меня они ассоциируются с любимым многими windows-пользователями notepad++ - хотя и тот и другой выглядят пристойней(впрочем это свойствнно OS X -приложениям вообще). За что платить 40 евро, и вообще зачем оно мне могло бы быть надо - не заметил. Хотя есть одна фича в них, которая может быть полезна:

На скриншоте TextWrangler, в котором открыто для редактирования несколько файлов - как видим он отображается справа, в такой себе менюшке, которую при желании можно спрятать. А вот что-то похожее, в более традиционном для unix-систем редакторе:

Это Aqua Emacs - одна из версий GNU Emacs для OS X, с плагином(или как это правильно назвать?) ecb. В верхней части указанный мной места файловой системы, внизу - история открытых файлов. О том как такое сделать можно почитать вот тут: http://sodonnell.wordpress.com/2007/06/13/the-emacs-code-browser/, о ruby+emacs есть неплохой скринкаст: http://platypope.org/yada/emacs-demo/ в котором прелести ruby mode для emacs раскрываются, на вид вкусно, но пока я пас.
Дольше всего я проигрался с eclipse:

Возвращаясь на vim, после странной и долгой экскурсии, опробовал несколько новых плагинов. NERD Tree - дает возможность шататься по файловой системе, открывая файлы, в том числе и в новых табах, достаточно интересная штука:

Другая интересная штука плагин позволяющий листать Man, perldoc, info страницы не выходя из vim: ManPageView - давно хотел чего-то подобного, просто набираем :Man perl, и получаем man-страницу в vim'е так же как если бы мы смотрели vim'овский help(полноценно работает на vim 7.2). Ну и третий плагин на скриншоте - BufferExplorer - думаю, комментарии излишни.
Из понравившихся фич, которым пока не нашел адекватной замены в vim - "автодописывание" end, после объявления класса, метода, или блока с do, в ruby. Правда, особо не искал.
6 комментариев:
Об автодописывании. Есть несколько плагинов, вроде
http://www.vim.org/scripts/script.php?script_id=2373
http://www.vim.org/scripts/script.php?script_id=1849
http://www.vim.org/scripts/script.php?script_id=2009
У меня стоит последний из них, AutoClose, он умеет автоматически вставлять парные символы (скобки, кавычки). Единственное, что эти плагины заточены, кажется, именно под парные символы, а не строки. Т.е. потребуют модификации для того, чтобы автоматически закрывать блоки do-end.
о спасибо за ссылки, не подумал бы что оно AutoClose может называться. Для скобочек в блоках типа
while(){
}
у мну дописано:
imap {<CR> {<CR>}<Esc>O<Tab>
по аналогии с этим для
while .. do
end
пробовал:
autocmd Filetype ruby imap do<CR> do<CR>end<Esc>O<Tab>
но оно с одной стороны не универсально, и штуки типа
array.each do |item|
end
не берет, и привести к желаемому сходу не получилось :)
для do end
есть snippetEmu
гы, спасибо большое! snippetEmu - это даже больше чем я хотел - причем и для перла и для руби, и для еще целой кучи всего :), надо только привыкнуть этим пользоваться, а то как-то даже страшно, когда из-под таба целые куски кода вываливаются со странными скобочками :)
Думаю что всем будет полезно, недавно появилась полезная тулза, для документирования кода, пока что на ruby и только под linux :) . Очень удобно из гуя на gtk+ и сразу если нада с форматированиями для RDoc.
http://rubyforge.org/projects/rudoto/
Отправить комментарий