Подсказка Ruby, когда стандартный ввод не является терминалом (явно для Notepad++)?

Я пользователь Notepad++. Одна из особенностей, которые мне нравятся в этом программном обеспечении, заключается в том, что вы можете иметь «консоль» в пользовательском интерфейсе (которая не является фактическим терминалом) и что вы можете запускать оттуда некоторые интерпретаторы командной строки.

К вашему сведению, чтобы консоль работала в Notepad ++, вам необходимо установить плагин NppExec, а затем перейти к Menu > Plugins > NppExec > Execute... и ввести туда любой исполняемый файл, который вы хотите (exe, пакет и т. д.), и нажмите OK. Откроется консоль, и вы увидите там вывод своей программы, а в случае интерактивной оболочки вы также можете вводить команды.

Например

  • для реальной подсказки DOS вы запускаете cmd.exe
  • for a Python prompt, you run python.exe -i.
    • From the Python help: -i inspect interactively after running script; forces a prompt even if stdin does not appear to be a terminal; also PYTHONINSPECT=x

Теперь мне интересно, есть ли способ получить аналогичную подсказку с помощью irb. У кого-нибудь есть идея, как заставить это работать в Notepad ++?

Обновить

В ответах упоминается, что он уже работает в Notepad++ 5.4.5. На мой взгляд, это не так.

Что я получаю от Notepad++:

http://content.screencast.com/users/JocelynLegault/folders/Jing/media/7cec643e-0924-479d-b31a-a40c691ec25d/2009-11-18_1814.png

Что я ожидаю:

http://content.screencast.com/users/JocelynLegault/folders/Jing/media/211d1b9f-6f66-458e-9a19-61b7e9b19b43/2009-11-18_1816.png


person joce    schedule 19.11.2009    source источник
comment
Кстати, я даже не знал об этой функции, так что спасибо, что указали!   -  person JRL    schedule 19.11.2009
comment
Во-первых, вам нужно установить плагин NppExec. Затем вы делаете Menu > Plugins > NppExec > Execute... и во «временном сценарии» набираете исполняемый файл (или пакетный, или любой исполняемый файл, который вы можете придумать). Появится консоль с результатами.   -  person joce    schedule 19.11.2009
comment
На самом деле, есть более короткий путь через кнопку «Консоль» в строке меню.   -  person JRL    schedule 19.11.2009


Ответы (2)


используйте следующий скрипт в npp_exec:

cmd /c start what_you_want_to_execute

объяснение: чтобы получить новый экземпляр cmd, вам нужно использовать команду start. Но команда запуска работает только в cmd. Таким образом, вы сначала выполняете cmd с параметром /c, чтобы он выполнил все, что следует, и вышел после этого. Затем вы используете команду запуска с тем, что вам нужно выполнить.

Чтобы сделать его немного красивее, вы можете использовать:

cmd /c start cmd /q /c "what_you_want_to_execute && pause"

то же самое, что и раньше, только теперь вы используете команду запуска для запуска cmd с параметром /q, который означает тихий и делает то же самое, что и @echo off в файле .bat. Снова параметр /c. Затем то, что вы хотите выполнить, плюс пауза после этого. Эти последние две вещи заключены в кавычки, поэтому первый вызов cmd не выполняет их в консоли npp_exec.

Я использую этот скрипт для выполнения Java иногда:

cmd /c start cmd /q /c "C:\Progra~1\Java\jdk1.6.0_17\bin\java.exe -classpath "$(CURRENT_DIRECTORY)" "$(NAME_PART)" && pause"
person Apanatshka    schedule 24.10.2010
comment
Гум. Это запускает окно командной строки. Это не способ заставить приглашение irb правильно отображаться в окне консоли N++. Грустно. - person joce; 24.10.2010

Для IRB просто запустите irb.bat.

Вот как это выглядит (Notepad++ 5.4.5 и NppExec 0.3 RC1):

замещающий текст http://img198.imageshack.us/img198/8373/86448854.jpg< /а>

person JRL    schedule 19.11.2009