2021-05-08 12:39:21 +00:00
# ansi-escapes
2017-12-15 18:56:14 +00:00
> [ANSI escape codes](http://www.termsys.demon.co.uk/vtansi.htm) for manipulating the terminal
## Install
```
$ npm install ansi-escapes
```
## Usage
```js
const ansiEscapes = require('ansi-escapes');
// Moves the cursor two rows up and to the left
process.stdout.write(ansiEscapes.cursorUp(2) + ansiEscapes.cursorLeft);
//=> '\u001B[2A\u001B[1000D'
```
## API
2021-05-08 12:39:21 +00:00
### cursorTo(x, y?)
2017-12-15 18:56:14 +00:00
Set the absolute position of the cursor. `x0` `y0` is the top left of the screen.
2021-05-08 12:39:21 +00:00
### cursorMove(x, y?)
2017-12-15 18:56:14 +00:00
Set the position of the cursor relative to its current position.
### cursorUp(count)
Move cursor up a specific amount of rows. Default is `1` .
### cursorDown(count)
Move cursor down a specific amount of rows. Default is `1` .
### cursorForward(count)
2021-05-08 12:39:21 +00:00
Move cursor forward a specific amount of columns. Default is `1` .
2017-12-15 18:56:14 +00:00
### cursorBackward(count)
2021-05-08 12:39:21 +00:00
Move cursor backward a specific amount of columns. Default is `1` .
2017-12-15 18:56:14 +00:00
### cursorLeft
Move cursor to the left side.
### cursorSavePosition
Save cursor position.
### cursorRestorePosition
Restore saved cursor position.
### cursorGetPosition
Get cursor position.
### cursorNextLine
Move cursor to the next line.
### cursorPrevLine
Move cursor to the previous line.
### cursorHide
Hide cursor.
### cursorShow
Show cursor.
### eraseLines(count)
Erase from the current cursor position up the specified amount of rows.
### eraseEndLine
Erase from the current cursor position to the end of the current line.
### eraseStartLine
Erase from the current cursor position to the start of the current line.
### eraseLine
Erase the entire current line.
### eraseDown
Erase the screen from the current line down to the bottom of the screen.
### eraseUp
Erase the screen from the current line up to the top of the screen.
### eraseScreen
Erase the screen and move the cursor the top left position.
### scrollUp
Scroll display up one line.
### scrollDown
Scroll display down one line.
### clearScreen
2021-05-08 12:39:21 +00:00
Clear the terminal screen. (Viewport)
### clearTerminal
Clear the whole terminal, including scrollback buffer. (Not just the visible part of it)
2017-12-15 18:56:14 +00:00
### beep
Output a beeping sound.
2021-05-08 12:39:21 +00:00
### link(text, url)
Create a clickable link.
[Supported terminals. ](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda ) Use [`supports-hyperlinks` ](https://github.com/jamestalmage/supports-hyperlinks ) to detect link support.
### image(filePath, options?)
2017-12-15 18:56:14 +00:00
Display an image.
*Currently only supported on iTerm2 >=3*
See [term-img ](https://github.com/sindresorhus/term-img ) for a higher-level module.
#### input
Type: `Buffer`
Buffer of an image. Usually read in with `fs.readFile()` .
#### options
2021-05-08 12:39:21 +00:00
Type: `object`
2017-12-15 18:56:14 +00:00
##### width
##### height
2021-05-08 12:39:21 +00:00
Type: `string | number`
2017-12-15 18:56:14 +00:00
The width and height are given as a number followed by a unit, or the word "auto".
- `N` : N character cells.
- `Npx` : N pixels.
- `N%` : N percent of the session's width or height.
- `auto` : The image's inherent size will be used to determine an appropriate dimension.
##### preserveAspectRatio
2021-05-08 12:39:21 +00:00
Type: `boolean` \
2017-12-15 18:56:14 +00:00
Default: `true`
2021-05-08 12:39:21 +00:00
### iTerm.setCwd(path?)
2017-12-15 18:56:14 +00:00
2021-05-08 12:39:21 +00:00
Type: `string` \
2017-12-15 18:56:14 +00:00
Default: `process.cwd()`
[Inform iTerm2 ](https://www.iterm2.com/documentation-escape-codes.html ) of the current directory to help semantic history and enable [Cmd-clicking relative paths ](https://coderwall.com/p/b7e82q/quickly-open-files-in-iterm-with-cmd-click ).
2021-05-08 12:39:21 +00:00
### iTerm.annotation(message, options?)
2017-12-15 18:56:14 +00:00
2021-05-08 12:39:21 +00:00
Creates an escape code to display an "annotation" in iTerm2.
2017-12-15 18:56:14 +00:00
2021-05-08 12:39:21 +00:00
An annotation looks like this when shown:
< img src = "https://user-images.githubusercontent.com/924465/64382136-b60ac700-cfe9-11e9-8a35-9682e8dc4b72.png" width = "500" >
See the [iTerm Proprietary Escape Codes documentation ](https://iterm2.com/documentation-escape-codes.html ) for more information.
#### message
Type: `string`
The message to display within the annotation.
The `|` character is disallowed and will be stripped.
#### options
2017-12-15 18:56:14 +00:00
2021-05-08 12:39:21 +00:00
Type: `object`
2017-12-15 18:56:14 +00:00
2021-05-08 12:39:21 +00:00
##### length
Type: `number` \
Default: The remainder of the line
Nonzero number of columns to annotate.
##### x
Type: `number` \
Default: Cursor position
Starting X coordinate.
Must be used with `y` and `length` .
##### y
Type: `number` \
Default: Cursor position
Starting Y coordinate.
Must be used with `x` and `length` .
##### isHidden
Type: `boolean` \
Default: `false`
Create a "hidden" annotation.
Annotations created this way can be shown using the "Show Annotations" iTerm command.
## Related
- [ansi-styles ](https://github.com/chalk/ansi-styles ) - ANSI escape codes for styling strings in the terminal
2017-12-15 18:56:14 +00:00
2021-05-08 12:39:21 +00:00
---
< div align = "center" >
< b >
< a href = "https://tidelift.com/subscription/pkg/npm-ansi-escapes?utm_source=npm-ansi-escapes&utm_medium=referral&utm_campaign=readme" > Get professional support for this package with a Tidelift subscription< / a >
< / b >
< br >
< sub >
Tidelift helps make open source sustainable for maintainers while giving companies< br > assurances about security, maintenance, and licensing for their dependencies.
< / sub >
< / div >