Текстовый редактор/IDE для Ruby, похожий на DrScheme

Для тех, кто не пользовался DrScheme, окно разделено на две части: одна часть - это редактируемый вами файл, а другая - интерактивная оболочка. Когда я запускаю файл, он загружается в интерактивную среду, поэтому я могу вызывать определенные мной функции и т. д. Интерактивная среда по-прежнему имеет все функции текстового редактора (подсветка синтаксиса, автодополнение и т. д.).

Итак, существует ли IDE для Ruby, которая не просто выполняет сценарий, который я делаю, но вместо этого загружает его в irb со всеми преимуществами текстового редактора?


person Slartibartfast    schedule 11.02.2009    source источник


Ответы (2)


Именно эта просьба (вплоть до того, что ее мотивировал доктор Шейм) в конце концов подтолкнула меня к изучению Emacs.

Вот что я сделал, чтобы установить его под Windows Vista:

  1. Загрузите Emacs с http://ftp.gnu.org/gnu/windows/emacs/emacs-22.3-bin-i386.zip

  2. Разархивируйте его в каталог по вашему выбору

  3. После распаковки создайте каталог includes в любом месте и скопируйте туда файлы ruby-mode.el и ruby-inf.el (они поставляются с дистрибутив ruby ​​в каталоге misc, а также его можно загрузить с Источник Руби

  4. Измените файл .emacs, чтобы указать, где найти ваши включения и как их использовать.

; directory to put various el files into
(add-to-list 'load-path "C:/emacs-22.3/includes")
;(1)modify .emacs to use ruby-mode 
(autoload 'ruby-mode "ruby-mode"
  "Mode for editing ruby source files" t)
(setq auto-mode-alist
      (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode))
                              interpreter-mode-alist))
;(2)set to load inf-ruby and set inf-ruby key definition in ruby-mode. 

(autoload 'run-ruby "inf-ruby"
  "Run an inferior Ruby process")
(autoload 'inf-ruby-keys "inf-ruby"
  "Set local key defs for inf-ruby in ruby-mode")
(add-hook 'ruby-mode-hook
      '(lambda ()
         (inf-ruby-keys)
))

(необязательно) Я также установил mode-compile.el из http://perso.tls.cena.fr/boubaker/distrib/mode-compile.el и внес соответствующие правки в .emacs

; Install mode-compile
(autoload 'mode-compile "mode-compile"
   "Compile current buffer based on the major mode" t)
(global-set-key "C-cc" 'mode-compile)
(autoload 'mode-compile-kill "mode-compile"
 "Kill compilation launched by `mode-compile'" t)
(global-set-key "C-ck" 'mode-compile-kill)

С этими изменениями Emacs автоматически идентифицирует файл .rb как ruby ​​и выполнит подсветку синтаксиса. Затем с помощью аккорда \Cc\Cs (Control-c, отпустите, а затем Control-s) irb запустится в поле под вашим файлом, и вы сможете использовать все клавиши, определенные inf-ruby: (\M — это мета-ключ что для Windows означает Alt)

  "\C-c\C-b" 'ruby-send-block
  "\C-c\M-b" 'ruby-send-block-and-go
  "\C-c\C-x" 'ruby-send-definition
  "\C-c\M-x" 'ruby-send-definition-and-go
  "\C-c\C-r" 'ruby-send-region
  "\C-c\M-r" 'ruby-send-region-and-go
  "\C-c\C-z" 'switch-to-ruby
  "\C-c\C-l" 'ruby-load-file
  "\C-c\C-s" 'run-ruby

Если вы сделали необязательный шаг и установили режим компиляции, вы также можете использовать \C-cc для отправки текущего файла в ruby ​​вместо irb.

person fjom    schedule 12.02.2009
comment
Вам нужно отредактировать компиляцию режима, чтобы поставить \C-cc вместо C-cc. - person aronchick; 10.03.2010

Я еще не работал с DrScheme, но Netbeans 6.5 включает полнофункциональный IRB. Вы пробовали?

person Sebastian    schedule 11.02.2009
comment
Не могу поверить, что не замечал этого раньше. С другой стороны, JRuby irb, о котором я и прошу, падает, как только я его запускаю. Обычный irb работает, но это просто обычный irb. - person Slartibartfast; 11.02.2009