Ruby подскажите, когда stdin не является терминалом (для Notepad ++ явно)? - PullRequest
1 голос
/ 19 ноября 2009

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

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

Например

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

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

Update

В полученных ответах есть упоминание о том, что оно уже работает в 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

Ответы [ 2 ]

1 голос
/ 24 октября 2010

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

cmd /c start what_you_want_to_execute

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

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

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

так же, как и раньше, только теперь вы используете команду start для запуска 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"
0 голосов
/ 19 ноября 2009

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

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

альтернативный текст http://img198.imageshack.us/img198/8373/86448854.jpg

...