1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/term
2020-08-17 20:16:18 +02:00
..
colors.v
control.v all: unify const names to snake_case 2020-05-22 17:36:09 +02:00
README.md term: add documentation (#6097) 2020-08-17 20:16:18 +02:00
term_nix.c.v vlib: use new filename format 2020-04-11 19:51:32 +02:00
term_test.v term: header() 2020-02-07 18:46:20 +01:00
term_windows.c.v checker: check incorrect names 2020-05-16 16:12:23 +02:00
term.js.v vlib: use new filename format 2020-04-11 19:51:32 +02:00
term.v term: fix panic in term.header, when cols,rows from get_terminal_size are < 2 2020-07-24 08:34:39 +03:00

Quickstart

The V term module is a module which is made to provide an interactive api that helps building TUI apps.

Use

You can use the term module to either color the output on a terminal or to decide on where to put the output in your terminal.

For example let's make a simple program which prints colored text in the middle of the terminal.

import term
import os

fn main() {
        term.clear() // clears the content in the terminal
        width, height := term.get_terminal_size() // get the size of the terminal 
        term.set_cursor_position(width / 2, height / 2) // now we point the cursor to the middle of  the terminal 
        println(term.strikethrough(term.bright_green("hello world")))  // Print green text
        term.set_cursor_position(0, height) // Sets the position of the cursor to the bottom of the terminal
        mut var := os.input('press q to quit: ')
        // Keep prompting until the user presses the q key
        for {
                if  var == 'q' {
                        break
                } else {
                        var = os.input('press q to quit: ')
                }
        }
}

This simple program covers many of the principal aspects of the term module.

API

Here are some functions you should be aware of in the term module:

// returns the height and the width of the terminal
term.get_terminal_size() (width, height)

// returns the string as green text to be printed on stdout 
term.ok_message(string)

// returns the string as red text to be printed on stdout 
term.fail_message(string)

// returns the string as yellow text to be printed on stdout 
term.warning_message(string)

//clears the entire terminal and leaves a blank one
term.clear()

// colors the output of the output, the available colors are: black,blue,yellow,green,cyan,gray,bright_blue,bright_green,bright_red,bright_black,bright_cyan
term.<color>(string)

// transforms the given string into bold text
term.bold(string)

// puts a strikethrough into the given string
term.strikethrough(string)

// underlines the given string
term.underline(string)

// colors the background of the outup following the given color, the available colors are: black,blue,yellow,green,cyan,gray
term.bg_<color>(string)

// sets the position of the cursor at a given place in the terminal
term.set_cursor_position(x,y)

// moves the cursor up
term.cursor_up()

// moves the cursor down
term.cursor_down()

// moves the cursor to the right
term.cursor_forward()

// moves the cursor to the left
term.cursor_back()

// shows the cursor
term.show_cursor()

// hides the cursor
term.hide_cursor()