Как я могу перенаправить поток ошибок из команд оболочки ruby ​​в интерфейс ruby ​​vim? - PullRequest
0 голосов
/ 17 января 2012

Я хочу использовать модуль rake из ruby-интерфейса vim для запуска rake-файлов. Когда задача rake использует sh для вызова команд оболочки, вывод идет непосредственно на терминал - он не проходит через $stdout и $stderr рубина - когда я пытаюсь перенаправить вывод $stdout и $stderr не идет туда, куда я его перенаправляю.

Теперь в vim этот вывод не идет на терминал vim - он идет на терминал, который запустил vim!

stdout не проблема, потому что rake печатает его там, где я хочу. Однако, если я пытаюсь использовать модуль rake из интерфейса ruby ​​vim, я не хочу, чтобы вывод ошибок шел в терминал, который вызвал vim (который скрыт при запуске gVim и неудобен при запуске shell vim) - я хочу, чтобы зайдите во что-нибудь, что я могу прочитать через ruby ​​или vimscript (чтобы я мог разобрать сообщение об ошибке)

Итак, я ищу способ:

  • Чтение \ перенаправление stderr вызовов оболочки ruby ​​или
  • Чтение \ перенаправление stderr, которое vim отправляет в вызывающую его оболочку.

Возможно ли это?

1 Ответ

0 голосов
/ 18 января 2012

Если вы используете 2> при вызове Ruby или рейка, он выведет stderr туда, куда вы хотите.

Выводит ошибку на консоль:

ruby -e "raise 'exception'" > output

Выводит ошибку из файла с именем output:

ruby -e "raise 'exception'" 2> output

Надеюсь, это поможет!

...