Crossterm Terminal | cross-platform terminal actions.
This crate allows you to perform terminal related actions cross-platform e.g clearing, resizing etc. It supports all UNIX and windows terminals down to windows 7 (not all terminals are tested see Tested Terminals for more info)
This crate is a sub-crate of crossterm to perform terminal related actions, and can be use individually.
Other sub-crates are:
When you want to use other modules as well you might want to use crossterm with feature flags.
Table of contents:
Getting Started
This documentation is only for crossterm_terminal
version 0.2
check the examples folders with detailed examples for all functionality of this crate.
Add the crossterm_terminal
package to your Cargo.toml
file.
[dependencies]
crossterm_terminal = "0.2"
And import the crossterm_terminal
modules you want to use.
extern crate crossterm_terminal;
pub use ;
Useful Links
Features
These are the features of this crate:
- Cross-platform
- Multithreaded (send, sync)
- Detailed Documentation
- Few Dependencies
- Terminal
- Clearing (all lines, current line, from cursor down and up, until new line)
- Scrolling (up, down)
- Terminal Size (get/set)
- Exit Current Process
Examples
The examples folder has more complete and verbose examples.
use ;
let mut terminal = terminal;
// Clear all lines in terminal;
terminal.clear;
// Clear all cells from current cursor position down.
terminal.clear;
// Clear all cells from current cursor position down.
terminal.clear;
// Clear current line cells.
terminal.clear;
// Clear all the cells until next line.
terminal.clear;
// Get terminal size
let = terminal.terminal_size;
print!;
// Scroll down, up 10 lines.
terminal.scroll_down;
terminal.scroll_up;
// Set terminal size (width, height)
terminal.set_size;
// exit the current process.
terminal.exit;
// write to the terminal whether you are on the main screen or alternate screen.
terminal.write;
Tested terminals
- Windows Powershell
- Windows 10 (pro)
- Windows CMD
- Windows 10 (pro)
- Windows 8.1 (N)
- Ubuntu Desktop Terminal
- Ubuntu 17.10
- (Arch, Manjaro) KDE Konsole
- Linux Mint
This crate supports all Unix terminals and windows terminals down to Windows 7 but not all of them have been tested. If you have used this library for a terminal other than the above list without issues feel free to add it to the above list, I really would appreciate it.
Authors
- Timon Post - Project Owner & creator
License
This project is licensed under the MIT License - see the LICENSE.md file for details