Frage
Wie kann ich Farben mit Rubys Standard -Fluts -Bibliothek bekommen?
Also so etwas wie:
puts "\e[0m\e[30;47mtest\e[0m"
funktioniert super. Gibt ein schönes Schwarz auf hellgrauem Hintergrund. Aber dieses:
#!/usr/bin/env ruby
require 'curses'
Curses.noecho # do not show typed keys
Curses.init_screen
Curses.stdscr.keypad(true) # enable arrow keys (for pageup/down)
Curses.stdscr.nodelay = 1
Curses.clear
Curses.setpos(0,0)
Curses.addstr "Hello!"
Curses.addstr "\e[0m\e[30;47mHello!\e[0m"
Anzeigen:
Hallo!
^[[0M^[[30; 47MHello!^[0M)
Letztendlich brauche ich dafür Farben:
Wie fahre ich eine Taste in Ruby ein?
require 'curses'
Curses.noecho # do not show typed keys
Curses.init_screen
Curses.stdscr.keypad(true) # enable arrow keys (required for pageup/down)
loop do
case Curses.getch
when Curses::Key::PPAGE
Curses.setpos(0,0)
Curses.addstr("Page Up")
when Curses::Key::NPAGE
Curses.setpos(0,0)
Curses.addstr("Page Dn")
end
end
Lösung
Es gibt Beispiele für die Verwendung von Flüchen im Ruby -Quellcode, siehe z. B. hier.
Ihr Code könnte so etwas sein wie:
require 'curses'
include Curses
Curses.noecho # do not show typed keys
Curses.init_screen
Curses.stdscr.keypad(true) # enable arrow keys (required for pageup/down)
Curses.start_color
# Determines the colors in the 'attron' below
Curses.init_pair(COLOR_BLUE,COLOR_BLUE,COLOR_BLACK)
Curses.init_pair(COLOR_RED,COLOR_RED,COLOR_BLACK)
loop do
case Curses.getch
when Curses::Key::PPAGE
Curses.clear
Curses.setpos(0,0)
# Use colors defined color_init
Curses.attron(color_pair(COLOR_RED)|A_NORMAL){
Curses.addstr("Page Up")
}
when Curses::Key::NPAGE
Curses.clear
Curses.setpos(0,0)
Curses.attron(color_pair(COLOR_BLUE)|A_NORMAL){
Curses.addstr("Page Down")
}
end
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow