2012-02-21 20 views
6

Zastanawiam się, jak utworzyć okno "pełnoekranowe" wewnątrz powłoki, tak jak w vim, emacs itp. Czy jest to możliwe programowo w Ruby? ? I jak by to było zależne od platformy?Tworzenie programu wiersza poleceń "na pełnym ekranie"

Edytuj: Nie szukam sposobu, aby zmienić moją powłokę na na pełny ekran. Szukam sposobu na ukrycie poprzednich poleceń i "wypełnienie" ekranu powłoki aplikacją. To jest dla instalatora.

Odpowiedz

4

Najprawdopodobniej potrzebna jest pomoc techniczna ncurses lub S-Lang, aby zapewnić pełne korzystanie z usługi TUI.

gem środowisko Ruby udostępnia kilka klejnotów, które mogą być warte zwiedzania:

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

Autor pakietu rbcurse zaleca stosowanie ncurses-ruby gem. rbcurse zawiera niektóre wstępnie napisane widżety i możliwość pisania nowych widżetów w tym samym stylu - wygląda na bardzo użyteczny.

Nie znalazłem jeszcze żadnych powiązań S-Lang dla Ruby; w oparciu o projekt polegający na zapewnieniu tłumacza językowego, po prostu nie sądzę, że łatwo będzie zbudować wiązania Ruby. Szkoda, ponieważ wielu autorów aplikacji preferuje S-Lang nad ncurses.

+0

Ah, TUI! to było słowo, którego szukałem, ale nie mogłem znaleźć. Dzięki. – user2398029

0

spróbować nacisnąć „F11” key..or można przejść do ekranu Preferencje> ustawienia Właśnie znaleźć wątek, który mówi o this..try pójść here

+0

Zobacz edytowany wpis, aby uzyskać szczegółowe informacje. – user2398029

+0

Programuje programowo –

+0

Podany link dotyczy interfejsów _graphical_ opartych na GTK, a nie interfejsów terminalowych. Czy możesz zaproponować coś więcej na wzór http://en.wikipedia.org/wiki/Ncurses lub http://en.wikipedia.org/wiki/Text_user_interface? – sarnold

1

Można użyć ncurses o takich rzeczach . Dostarcza warstwę abstrakcji do twojego terminalu.

1

Chociaż istnieje wiele innych platform krzyż i elegancki Soulution następujące prace nad Linuksem, i powinien działać na innych Uniksach też:

system("clear") 

Jeśli w systemie Windows, może to działać (niesprawdzone):

system("cls") 

Jeśli chcesz złożyć wniosek, który może aktualizować swój interfejs, można zachować jakąś tablicę znaków:

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

To jest dość ręczne, ale działa dla prostych TUI.

Powiązane problemy