Skip to content

Instantly share code, notes, and snippets.

@sczizzo
Created December 20, 2019 03:30
Show Gist options
  • Save sczizzo/3ec7b1078f9e65bf0a79249253ce56be to your computer and use it in GitHub Desktop.
Save sczizzo/3ec7b1078f9e65bf0a79249253ce56be to your computer and use it in GitHub Desktop.
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