Я использую Windows Vista и Emacs 23.1.1, и я установил Ruby с помощью «One Click Ruby Installer». Затем я установил файлы Emacs Lisp, которые были установлены вместе с Ruby, как указано в inf-ruby.el.

Когда я запускаю функцию run-ruby (M-x run-ruby), irb запускается, но каждый раз, когда я нажимаю Enter, irb выводит строку, которую я только что набрал. Например:

irb(main):001:0> def foo()
def foo()
                   3 + 4
3 + 4
                 end
end
nil

Это раздражает. Если я просто запускаю irb в командной оболочке cygwin, эхо не выполняется. Например:

$ irb.bat --inf-ruby-mode
irb(main):001:0> def foo()
                   3 + 4
                   end
nil

Как мне отключить эхо в Emacs? Спасибо!

4
Tim Stewart 15 Авг 2009 в 22:25

2 ответа

Лучший ответ

Низший режим Ruby построен поверх comint-mode.

Я заметил, что есть переменная comint с именем comint-process-echoes.

Я установил для этой переменной значение t (истина), и эхо прекратилось.

Вот как я устанавливаю переменную:

;;; Define Ruby Mode Hook
(defun my-ruby-mode-hook ()
  (progn
    (setq comint-process-echoes t)
    (turn-on-font-lock)
    (auto-fill-mode)
    (yas/minor-mode)
    (inf-ruby-keys)))

;;; Register Ruby Mode Hook
(add-hook 'ruby-mode-hook 'my-ruby-mode-hook)
6
Tim Stewart 15 Авг 2009 в 23:06
6
К вашему сведению, вам не нужен прогноз
 – 
scottfrazer
16 Авг 2009 в 01:33
Я не думаю, что для ответа нужны все несвязанные настройки, не решающие проблему OP (например, YASnippet и т. Д.)
 – 
dolzenko
31 Окт 2013 в 15:01

Должно быть это:

(defun echo-false () (setq comint-process-echoes t))

(add-hook 'comint-mode-hook' эхо-ложь)

3
Little Jack 4 Окт 2011 в 13:35