term: golang.org/x/term Index | Files

package term

import "golang.org/x/term"

Package term provides support functions for dealing with terminals, as commonly found on UNIX systems.

Putting a terminal into raw mode is the most common requirement:

oldState, err := terminal.MakeRaw(0)
if err != nil {
defer terminal.Restore(0, oldState)


Package Files

term.go term_unix.go term_unix_linux.go terminal.go


var ErrPasteIndicator = pasteIndicatorError{}

ErrPasteIndicator may be returned from ReadLine as the error, in addition to valid line data. It indicates that bracketed paste mode is enabled and that the returned line consists only of pasted data. Programs may wish to interpret pasted data more literally than typed data.

func GetSize Uses

func GetSize(fd int) (width, height int, err error)

GetSize returns the visible dimensions of the given terminal.

These dimensions don't include any scrollback buffer height.

func IsTerminal Uses

func IsTerminal(fd int) bool

IsTerminal returns whether the given file descriptor is a terminal.

func ReadPassword Uses

func ReadPassword(fd int) ([]byte, error)

ReadPassword reads a line of input from a terminal without local echo. This is commonly used for inputting passwords and other sensitive data. The slice returned does not include the \n.

func Restore Uses

func Restore(fd int, oldState *State) error

Restore restores the terminal connected to the given file descriptor to a previous state.

type EscapeCodes Uses

type EscapeCodes struct {
    // Foreground colors
    Black, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte

    // Reset all attributes
    Reset []byte

EscapeCodes contains escape sequences that can be written to the terminal in order to achieve different styles of text.

type State Uses

type State struct {
    // contains filtered or unexported fields

State contains the state of a terminal.

func GetState Uses

func GetState(fd int) (*State, error)

GetState returns the current state of a terminal which may be useful to restore the terminal after a signal.

func MakeRaw Uses

func MakeRaw(fd int) (*State, error)

MakeRaw puts the terminal connected to the given file descriptor into raw mode and returns the previous state of the terminal so that it can be restored.

type Terminal Uses

type Terminal struct {
    // AutoCompleteCallback, if non-null, is called for each keypress with
    // the full input line and the current position of the cursor (in
    // bytes, as an index into |line|). If it returns ok=false, the key
    // press is processed normally. Otherwise it returns a replacement line
    // and the new cursor position.
    AutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool)

    // Escape contains a pointer to the escape codes for this terminal.
    // It's always a valid pointer, although the escape codes themselves
    // may be empty if the terminal doesn't support them.
    Escape *EscapeCodes
    // contains filtered or unexported fields

Terminal contains the state for running a VT100 terminal that is capable of reading lines of input.

func NewTerminal Uses

func NewTerminal(c io.ReadWriter, prompt string) *Terminal

NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is a local terminal, that terminal must first have been put into raw mode. prompt is a string that is written at the start of each input line (i.e. "> ").

func (*Terminal) ReadLine Uses

func (t *Terminal) ReadLine() (line string, err error)

ReadLine returns a line of input from the terminal.

func (*Terminal) ReadPassword Uses

func (t *Terminal) ReadPassword(prompt string) (line string, err error)

ReadPassword temporarily changes the prompt and reads a password, without echo, from the terminal.

func (*Terminal) SetBracketedPasteMode Uses

func (t *Terminal) SetBracketedPasteMode(on bool)

SetBracketedPasteMode requests that the terminal bracket paste operations with markers. Not all terminals support this but, if it is supported, then enabling this mode will stop any autocomplete callback from running due to pastes. Additionally, any lines that are completely pasted will be returned from ReadLine with the error set to ErrPasteIndicator.

func (*Terminal) SetPrompt Uses

func (t *Terminal) SetPrompt(prompt string)

SetPrompt sets the prompt to be used when reading subsequent lines.

func (*Terminal) SetSize Uses

func (t *Terminal) SetSize(width, height int) error

func (*Terminal) Write Uses

func (t *Terminal) Write(buf []byte) (n int, err error)

Package term imports 7 packages (graph) and is imported by 12 packages. Updated 2020-11-17. Refresh now. Tools for package owners.