Created
December 20, 2019 03:30
-
-
Save sczizzo/3ec7b1078f9e65bf0a79249253ce56be to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module ANSI | |
class << self | |
ESC = "\x1B" | |
CSI = ESC + "[" | |
def cursor_up(n = 1) | |
"#{CSI}#{n}A" | |
end | |
def cursor_down(n = 1) | |
"#{CSI}#{n}B" | |
end | |
def cursor_forward(n = 1) | |
"#{CSI}#{n}C" | |
end | |
def cursor_back(n = 1) | |
"#{CSI}#{n}D" | |
end | |
def curosr_next_line(n = 1) | |
"#{CSI}#{n}E" | |
end | |
def cursor_previous_line(n = 1) | |
"#{CSI}#{n}F" | |
end | |
def cursor_horizontal_absolute(n = 1) | |
"#{CSI}#{n}G" | |
end | |
def cursor_position(r = 0, c = 0) | |
"#{CSI}#{r+1};#{c+1}H" | |
end | |
def erase_display(n = 2) | |
"#{CSI}#{n}J" | |
end | |
def erase_display_up | |
erase_display(1) | |
end | |
def erase_scrollback_buffer | |
erase_display(3) | |
end | |
def erase_line(n = 2) | |
"#{CSI}#{n}K" | |
end | |
def erase_line_end | |
erase_line(0) | |
end | |
def erase_line_beginning | |
erase_line(1) | |
end | |
def scroll_up(n = 1) | |
"#{CSI}#{n}S" | |
end | |
def scroll_down(n = 1) | |
"#{CSI}#{n}T" | |
end | |
def select_graphics_rendition(n = 0) | |
"#{CSI}#{n}m" | |
end | |
alias_method :sgr, :select_graphics_rendition | |
def reset; sgr(0) end | |
def bold; sgr(1) end | |
def faint; sgr(2) end | |
def italic; sgr(3) end | |
def underline; sgr(4) end | |
def slow_blink; sgr(5) end | |
def rapid_blink; sgr(6) end | |
def inverse; sgr(7) end | |
def crossed_out; sgr(9) end | |
def default_font; sgr(10) end | |
def alternate_font; sgr(11) end | |
def bold_off; sgr(21) end | |
def normal; sgr(22) end | |
def italic_off; sgr(23) end | |
def underline_off; sgr(24) end | |
def blink_off; sgr(25) end | |
def inverse_off; sgr(27) end | |
def crossed_out_off; sgr(29) end | |
def default_fg; sgr(39) end | |
def default_bg; sgr(49) end | |
def fg_black; sgr(30) end | |
def bg_black; sgr(40) end | |
def fg_red; sgr(31) end | |
def bg_red; sgr(41) end | |
def fg_green; sgr(32) end | |
def bg_green; sgr(42) end | |
def fg_yellow; sgr(33) end | |
def bg_yellow; sgr(43) end | |
def fg_blue; sgr(34) end | |
def bg_blue; sgr(44) end | |
def fg_magenta; sgr(35) end | |
def bg_magenta; sgr(45) end | |
def fg_cyan; sgr(36) end | |
def bg_cyan; sgr(46) end | |
def fg_white; sgr(37) end | |
def bg_white; sgr(47) end | |
def fg_bright_black; sgr(90) end | |
def bg_bright_black; sgr(100) end | |
def fg_bright_red; sgr(91) end | |
def bg_bright_red; sgr(101) end | |
def fg_bright_green; sgr(92) end | |
def bg_bright_green; sgr(102) end | |
def fg_bright_yellow; sgr(93) end | |
def bg_bright_yellow; sgr(103) end | |
def fg_bright_blue; sgr(94) end | |
def bg_bright_blue; sgr(104) end | |
def fg_bright_magenta; sgr(95) end | |
def bg_bright_magenta; sgr(105) end | |
def fg_bright_cyan; sgr(96) end | |
def bg_bright_cyan; sgr(106) end | |
def fg_bright_white; sgr(97) end | |
def bg_bright_white; sgr(107) end | |
def save_cursor_position | |
"#{CSI}s" | |
end | |
def restore_cursor_position | |
"#{CSI}u" | |
end | |
def show_cursor | |
"#{CSI}?25h" | |
end | |
def hide_cursor | |
"#{CSI}?25l" | |
end | |
def enable_screen_buffer | |
"#{CSI}?1049h" | |
end | |
def disable_screen_buffer | |
"#{CSI}?1049l" | |
end | |
def enable_bracketed_paste | |
"#{CSI}?2004h" | |
end | |
def disable_bracketed_paste | |
"#{CSI}?2004l" | |
end | |
def fg_8bit(n) | |
"#{CSI}38;5;#{n}m" | |
end | |
def bg_8bit(n) | |
"#{CSI}48;5;#{n}m" | |
end | |
def fg_rgb(r, g, b) | |
"#{CSI}38;2;#{r};#{g};#{b}m" | |
end | |
def bg_rgb(r, g, b) | |
"#{CSI}48;2;#{r};#{g};#{b}m" | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment