2012-02-21 23 views
6

Me pregunto cómo crear la apariencia de una ventana de "pantalla completa" dentro de un shell, como en vim, emacs, etc. ¿Es posible hacer esto programáticamente en Ruby? ? ¿Y qué dependiente de la plataforma sería eso?Haciendo un programa de línea de comandos "pantalla completa"

Edit: No estoy buscando cómo hacer que mi shell pase a pantalla completa. Estoy buscando una manera de ocultar los comandos anteriores ingresados ​​y "llenar" la pantalla del shell con una aplicación. Es para un instalador.

Respuesta

4

Lo que probablemente esté buscando es ncurses o S-Lang ayuda para proporcionar su experiencia completa de TUI.

entorno de Ruby gem proporciona varias gemas que podrían ser vale la pena explorar:

$ 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) 

El autor del paquete rbcurse recomienda utilizar los ncurses-ruby gem. rbcurse proporciona algunos widgets preescritos y la capacidad de escribir widgets nuevos en el mismo estilo: parece muy útil.

No he encontrado aún ninguna encuadernadora S-Lang para Ruby; basado en el enfoque del proyecto de proporcionar un intérprete de idiomas, simplemente no creo que sea fácil construir enlaces de Ruby. Lástima, porque muchos autores de aplicaciones prefieren S-Lang a ncurses.

+0

¡Ah, TUI! esa era la palabra que estaba buscando pero que no pude encontrar. Gracias. – user2398029

0

tratan de presionar "F11" key..or se puede ir a las preferencias> pantalla de ajuste del acabo de encontrar un hilo que hablar de this..try para ir here

+0

Consulte la publicación editada para obtener más información. – user2398029

+0

lo desea programáticamente –

+0

El enlace que ha proporcionado es para interfaces _graphic_ basadas en GTK, no interfaces de terminal. ¿Puede sugerir algo más en la línea de http://en.wikipedia.org/wiki/Ncurses o http://en.wikipedia.org/wiki/Text_user_interface? – sarnold

1

usted podría utilizar para ncurses cosas por el estilo . Proporciona una capa de abstracción a su terminal.

1

Aunque hay muchos más multiplataforma y elegante Soulution, las siguientes obras en Linux, y debería funcionar en otros sistemas Unix también:

system("clear") 

Si está en Windows, esto puede funcionar (no probado):

system("cls") 

Si desea hacer una aplicación que puede actualizar su interfaz, se puede mantener algún tipo de conjunto de caracteres:

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

Esto es bastante manual, pero funciona para TUI simples.

Cuestiones relacionadas