Ruby 红宝石诅咒颜色
如何使用Ruby的默认Curses库获取颜色 比如:Ruby 红宝石诅咒颜色,ruby,curses,Ruby,Curses,如何使用Ruby的默认Curses库获取颜色 比如: puts "\e[0m\e[30;47mtest\e[0m" 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_col
puts "\e[0m\e[30;47mtest\e[0m"
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
效果很好。在浅灰色背景上呈现出漂亮的黑色。但这是:
#!/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"
显示:
你好!
^[0m^[30;47mHello!^[0m]
最终,我需要颜色:
ruby源代码中有使用诅咒的示例,请参见,例如 您的代码可能类似于:
puts "\e[0m\e[30;47mtest\e[0m"
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
如果stdlib中的诅咒已被弃用,请尝试使用正确的documentation@basicxman,你为什么说stdlib的curses不受欢迎?libruby
curses
确实没有合适的文档,我只能在SONo上找到/得到答案,不要使用ncurses。使用curses。它没有被删除ecated,如果您使用ncurses创建GUI,您的用户在使用它之前必须下载并安装ncurses gem。虽然ncurses更好,但差异可以忽略,也不值得。只需使用curses,并使用ncurses文档来处理问题。curses包不受欢迎。它是ruby core库,而ncurses包不是。一般来说,curses和ncurses是一回事,因为curses是通用名(或API)ncurses是它的特殊实现。此外,ruby的curses包实际上使用的是ncurses系统库。这也证明了它并没有被弃用。有些人只是将系统库的名称与general thing和ruby包相关联。