Создание из командной строки программы «полный экран» - PullRequest
6 голосов
/ 21 февраля 2012

Мне интересно, как создать вид «полноэкранного» окна внутри оболочки, как в vim, emacs и т. Д. Возможно ли это сделать программно в Ruby?И насколько это будет зависеть от платформы?

Редактировать: Я не ищу, как заставить shell работать в полноэкранном режиме.Я ищу способ скрыть предыдущие введенные команды и «заполнить» экран оболочки приложением.Это для установщика.

Ответы [ 4 ]

4 голосов
/ 21 февраля 2012

Что вы, вероятно, ищете, это ncurses или S-Lang поддержка, чтобы предоставить вам полный TUI опыт.Среда 1009 * предоставляет несколько драгоценных камней, которые стоит изучить:

$ gem list --remote | grep -i curses
cursesx (003)
ffi-ncurses (0.4.0)
ncurses (0.9.1)
ncurses-ruby (1.2.1)
ncursesw (1.2.4.3)
snowleopard-ncurses (1.2.4)

Автор пакета rbcurse рекомендует использовать ncurses-ruby gem .rbcurse предоставляет некоторые предварительно написанные виджеты и возможность писать новые виджеты в том же стиле - это выглядит очень полезным.

Я еще не нашел привязок S-Lang для Ruby;Исходя из того, что проект сосредоточен на предоставлении переводчика языка, я просто не думаю, что будет легко создавать привязки Ruby.Жаль, потому что многие авторы приложений предпочитают S-Lang, а не ncurses.

1 голос
/ 21 февраля 2012

Хотя кросс-платформенное и элегантное решение намного шире, в Linux работает следующее и должно работать и в других Unixes:

system("clear")

Если вы работаете в Windows, это может сработать (не проверено):

system("cls")

Если вы хотите создать приложение, которое может обновлять свой интерфейс, вы можете поддерживать некоторый массив символов:

colArr=[]
columNum.each {colArr<<[]}
#fill colArr
system("clear")
print colArr
#Every time you change it, call system("clear") then print colArr

Это довольно ручное руководство, но оно работает дляпростые TUI.

1 голос
/ 21 февраля 2012

Вы можете использовать ncurses для подобных вещей.Он обеспечивает уровень абстракции для вашего терминала.

0 голосов
/ 21 февраля 2012

попробуйте нажать клавишу «F11» ... или вы можете перейти в настройки> настройки дисплея Я просто нахожу ветку, в которой говорится об этом .. попробуйте здесь

...