mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-04-12 10:48:39 +03:00
lint all Md files
This commit is contained in:
56
README.md
56
README.md
@ -44,11 +44,11 @@ things, but I've been using it full time since April 2022.
|
|||||||
|
|
||||||
## Download
|
## Download
|
||||||
|
|
||||||
| Platform / Package | Links | Notes |
|
| Platform / Package | Links | Notes |
|
||||||
| ----------| ----- | ----- |
|
| ------------------ | ------------------------------------------------------------------------ | -------------------------- |
|
||||||
| macOS | [Tip ("Nightly")](https://github.com/mitchellh/ghostty/releases/tag/tip) | MacOS 12+ Universal Binary |
|
| macOS | [Tip ("Nightly")](https://github.com/mitchellh/ghostty/releases/tag/tip) | MacOS 12+ Universal Binary |
|
||||||
| Linux | [Build from Source](#developing-ghostty) | |
|
| Linux | [Build from Source](#developing-ghostty) | |
|
||||||
| Windows | n/a | Not supported yet |
|
| Windows | n/a | Not supported yet |
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
|
||||||
@ -134,12 +134,12 @@ to support many of the features that
|
|||||||
|
|
||||||
The currently support shell integration features in Ghostty:
|
The currently support shell integration features in Ghostty:
|
||||||
|
|
||||||
* We do not confirm close for windows where the cursor is at a prompt.
|
- We do not confirm close for windows where the cursor is at a prompt.
|
||||||
* New terminals start in the working directory of the previously focused terminal.
|
- New terminals start in the working directory of the previously focused terminal.
|
||||||
* Complex prompts resize correctly by allowing the shell to redraw the prompt line.
|
- Complex prompts resize correctly by allowing the shell to redraw the prompt line.
|
||||||
* The cursor at the prompt is turned into a bar.
|
- The cursor at the prompt is turned into a bar.
|
||||||
* The `jump_to_prompt` keybinding can be used to scroll the terminal window
|
- The `jump_to_prompt` keybinding can be used to scroll the terminal window
|
||||||
forward and back through prompts.
|
forward and back through prompts.
|
||||||
|
|
||||||
#### Shell Integration Installation and Verification
|
#### Shell Integration Installation and Verification
|
||||||
|
|
||||||
@ -208,15 +208,15 @@ goes for any other shell.
|
|||||||
|
|
||||||
The high-level ambitious plan for the project, in order:
|
The high-level ambitious plan for the project, in order:
|
||||||
|
|
||||||
| # | Step | Status |
|
| # | Step | Status |
|
||||||
|:---:|------|:------:|
|
| :-: | ----------------------------------------------------------- | :----: |
|
||||||
| 1 | [Standards-compliant terminal emulation](docs/sequences.md) | ⚠️ |
|
| 1 | [Standards-compliant terminal emulation](docs/sequences.md) | ⚠️ |
|
||||||
| 2 | Competitive performance | ✅ |
|
| 2 | Competitive performance | ✅ |
|
||||||
| 3 | Basic customizability -- fonts, bg colors, etc. | ✅ |
|
| 3 | Basic customizability -- fonts, bg colors, etc. | ✅ |
|
||||||
| 4 | Richer windowing features -- multi-window, tabbing, panes | ✅ |
|
| 4 | Richer windowing features -- multi-window, tabbing, panes | ✅ |
|
||||||
| 5 | Native Platform Experiences (i.e. Mac Preference Panel) | ⚠️ |
|
| 5 | Native Platform Experiences (i.e. Mac Preference Panel) | ⚠️ |
|
||||||
| 6 | Windows Terminals (including PowerShell, Cmd, WSL) | ❌ |
|
| 6 | Windows Terminals (including PowerShell, Cmd, WSL) | ❌ |
|
||||||
| N | Fancy features (to be expanded upon later) | ❌ |
|
| N | Fancy features (to be expanded upon later) | ❌ |
|
||||||
|
|
||||||
Additional details for each step in the big roadmap below:
|
Additional details for each step in the big roadmap below:
|
||||||
|
|
||||||
@ -261,10 +261,10 @@ Ghostty is a cross-platform terminal emulator but we don't aim for a
|
|||||||
least-common-denominator experience. There is a large, shared core written
|
least-common-denominator experience. There is a large, shared core written
|
||||||
in Zig but we do a lot of platform-native things:
|
in Zig but we do a lot of platform-native things:
|
||||||
|
|
||||||
* The macOS app is a true SwiftUI-based application with all the things you
|
- The macOS app is a true SwiftUI-based application with all the things you
|
||||||
would expect such as real windowing, menu bars, a settings GUI, etc.
|
would expect such as real windowing, menu bars, a settings GUI, etc.
|
||||||
* macOS uses a true Metal renderer with CoreText for font discovery.
|
- macOS uses a true Metal renderer with CoreText for font discovery.
|
||||||
* The Linux app is built with GTK.
|
- The Linux app is built with GTK.
|
||||||
|
|
||||||
There are more improvements to be made. The macOS settings window is still
|
There are more improvements to be made. The macOS settings window is still
|
||||||
a work-in-progress. Similar improvements will follow with Linux.
|
a work-in-progress. Similar improvements will follow with Linux.
|
||||||
@ -310,11 +310,11 @@ tasks.
|
|||||||
|
|
||||||
Other useful commands:
|
Other useful commands:
|
||||||
|
|
||||||
* `zig build test` for running unit tests.
|
- `zig build test` for running unit tests.
|
||||||
* `zig build run -Dconformance=<name>` runs a conformance test case from
|
- `zig build run -Dconformance=<name>` runs a conformance test case from
|
||||||
the `conformance` directory. The `name` is the name of the file. This runs
|
the `conformance` directory. The `name` is the name of the file. This runs
|
||||||
in the current running terminal emulator so if you want to check the
|
in the current running terminal emulator so if you want to check the
|
||||||
behavior of this project, you must run this command in ghostty.
|
behavior of this project, you must run this command in ghostty.
|
||||||
|
|
||||||
### Compiling a Release Build
|
### Compiling a Release Build
|
||||||
|
|
||||||
|
@ -42,28 +42,28 @@ or even pair (time permitting) if you're interested.
|
|||||||
|
|
||||||
This is the priority of bugs:
|
This is the priority of bugs:
|
||||||
|
|
||||||
1. Crashes. 💥 These are just unacceptable and I'll drop everything to
|
1. Crashes. 💥 These are just unacceptable and I'll drop everything to
|
||||||
fix a crash.
|
fix a crash.
|
||||||
|
|
||||||
2. Escape sequence logic or rendering issues. These are almost as bad as
|
2. Escape sequence logic or rendering issues. These are almost as bad as
|
||||||
crashes because they usually make your workflow unusable. This includes
|
crashes because they usually make your workflow unusable. This includes
|
||||||
unsupported escape sequences that impact your workflow.
|
unsupported escape sequences that impact your workflow.
|
||||||
|
|
||||||
3. Anything else...
|
3. Anything else...
|
||||||
|
|
||||||
## Let's Talk!
|
## Let's Talk!
|
||||||
|
|
||||||
You likely landed in the Discord community first, if for some reason you're not
|
You likely landed in the Discord community first, if for some reason you're not
|
||||||
in there, join [here](https://discord.gg/ghostty). Discord is a great place to
|
in there, join [here](https://discord.gg/ghostty). Discord is a great place to
|
||||||
share feedback, discuss issues, ask questions and talk to other testers.
|
share feedback, discuss issues, ask questions and talk to other testers.
|
||||||
|
|
||||||
## Other FAQ
|
## Other FAQ
|
||||||
|
|
||||||
### Can I Invite a Friend?
|
### Can I Invite a Friend?
|
||||||
|
|
||||||
To the Discord, go for it! [discord.gg/ghostty](https://discord.gg/ghostty).
|
To the Discord, go for it! [discord.gg/ghostty](https://discord.gg/ghostty).
|
||||||
Initially, they'll land in a public Discord channel. As mentioned, testers
|
Initially, they'll land in a public Discord channel. As mentioned, testers
|
||||||
are being added slowly as bugs are fixed. Discord is being used as a sort-of
|
are being added slowly as bugs are fixed. Discord is being used as a sort-of
|
||||||
waitlist, and people are added to the project as testers from there,
|
waitlist, and people are added to the project as testers from there,
|
||||||
so just send them the link and they will be added at some point.
|
so just send them the link and they will be added at some point.
|
||||||
|
|
||||||
|
18
TODO.md
18
TODO.md
@ -1,15 +1,15 @@
|
|||||||
Performance:
|
Performance:
|
||||||
|
|
||||||
* for scrollback, investigate using segmented list for sufficiently large
|
- for scrollback, investigate using segmented list for sufficiently large
|
||||||
scrollback scenarios.
|
scrollback scenarios.
|
||||||
* Loading fonts on startups should probably happen in multiple threads
|
- Loading fonts on startups should probably happen in multiple threads
|
||||||
* `deleteLines` is very, very slow which makes scroll region benchmarks terrible
|
- `deleteLines` is very, very slow which makes scroll region benchmarks terrible
|
||||||
|
|
||||||
Correctness:
|
Correctness:
|
||||||
|
|
||||||
* test wrap against wraptest: https://github.com/mattiase/wraptest
|
- test wrap against wraptest: https://github.com/mattiase/wraptest
|
||||||
- automate this in some way
|
- automate this in some way
|
||||||
* Charsets: UTF-8 vs. ASCII mode
|
- Charsets: UTF-8 vs. ASCII mode
|
||||||
- we only support UTF-8 input right now
|
- we only support UTF-8 input right now
|
||||||
- need fallback glyphs if they're not supported
|
- need fallback glyphs if they're not supported
|
||||||
- can effect a crash using `vttest` menu `3 10` since it tries to parse
|
- can effect a crash using `vttest` menu `3 10` since it tries to parse
|
||||||
@ -17,13 +17,13 @@ Correctness:
|
|||||||
|
|
||||||
Improvements:
|
Improvements:
|
||||||
|
|
||||||
* scrollback: configurable
|
- scrollback: configurable
|
||||||
|
|
||||||
Mac:
|
Mac:
|
||||||
|
|
||||||
* Preferences window
|
- Preferences window
|
||||||
|
|
||||||
Major Features:
|
Major Features:
|
||||||
|
|
||||||
* Bell
|
- Bell
|
||||||
* Sixels: https://saitoha.github.io/libsixel/
|
- Sixels: https://saitoha.github.io/libsixel/
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
# Control and Escape Sequences
|
# Control and Escape Sequences
|
||||||
|
|
||||||
⚠️ **This is super out of date. Ghostty's support is much better
|
⚠️ **This is super out of date. Ghostty's support is much better
|
||||||
than this document seems. TODO to update this.** ⚠️
|
than this document seems. TODO to update this.** ⚠️
|
||||||
|
|
||||||
|
|
||||||
This is the list of control and escape sequences known in the ecosystem
|
This is the list of control and escape sequences known in the ecosystem
|
||||||
of terminal emulators and their implementation status in ghostty. Note that
|
of terminal emulators and their implementation status in ghostty. Note that
|
||||||
some control sequences may never be implemented in ghostty. In these scenarios,
|
some control sequences may never be implemented in ghostty. In these scenarios,
|
||||||
@ -11,35 +10,35 @@ it is noted why.
|
|||||||
|
|
||||||
Status meanings:
|
Status meanings:
|
||||||
|
|
||||||
* ✅ - Implementation is complete and considered 100% accurate.
|
- ✅ - Implementation is complete and considered 100% accurate.
|
||||||
* ⚠️ - Implementation works, but may be missing some functionality. The
|
- ⚠️ - Implementation works, but may be missing some functionality. The
|
||||||
details of how well it works or doesn't are in the linked page. In many
|
details of how well it works or doesn't are in the linked page. In many
|
||||||
cases, the missing functionality is very specific or esoteric. Regardless,
|
cases, the missing functionality is very specific or esoteric. Regardless,
|
||||||
we don't consider a sequence a green checkmark until all known feature
|
we don't consider a sequence a green checkmark until all known feature
|
||||||
interactions are complete.
|
interactions are complete.
|
||||||
* ❌ - Implementation is effectively non-functional, but ghostty continues
|
- ❌ - Implementation is effectively non-functional, but ghostty continues
|
||||||
in the face of it (probably in some broken state).
|
in the face of it (probably in some broken state).
|
||||||
* 💥 - Ghostty crashes if this control sequence is sent.
|
- 💥 - Ghostty crashes if this control sequence is sent.
|
||||||
|
|
||||||
| ID | ASCII | Name | Status |
|
| ID | ASCII | Name | Status |
|
||||||
|:---:|:-----:|:-----|:------:|
|
| :---: | :-----: | :----------------------------------------- | :----: |
|
||||||
| `ENQ` | `0x05` | [Enquiry](sequences/enq.md) | ✅ |
|
| `ENQ` | `0x05` | [Enquiry](sequences/enq.md) | ✅ |
|
||||||
| `BEL` | `0x07` | [Bell](sequences/bel.md) | ❌ |
|
| `BEL` | `0x07` | [Bell](sequences/bel.md) | ❌ |
|
||||||
| `BS` | `0x08` | [Backspace](sequences/bs.md) | ⚠️ |
|
| `BS` | `0x08` | [Backspace](sequences/bs.md) | ⚠️ |
|
||||||
| `TAB` | `0x09` | [Tab](sequences/tab.md) | ⚠️ |
|
| `TAB` | `0x09` | [Tab](sequences/tab.md) | ⚠️ |
|
||||||
| `LF` | `0x0A` | [Linefeed](sequences/lf.md) | ⚠️ |
|
| `LF` | `0x0A` | [Linefeed](sequences/lf.md) | ⚠️ |
|
||||||
| `VT` | `0x0B` | [Vertical Tab](sequences/vt.md) | ✅ |
|
| `VT` | `0x0B` | [Vertical Tab](sequences/vt.md) | ✅ |
|
||||||
| `FF` | `0x0C` | [Form Feed](sequences/ff.md) | ✅ |
|
| `FF` | `0x0C` | [Form Feed](sequences/ff.md) | ✅ |
|
||||||
| `CR` | `0x0D` | [Carriage Return](sequences/cr.md) | ⚠️ |
|
| `CR` | `0x0D` | [Carriage Return](sequences/cr.md) | ⚠️ |
|
||||||
| `SO` | `0x0E` | [Shift Out](#) | ❌ |
|
| `SO` | `0x0E` | [Shift Out](#) | ❌ |
|
||||||
| `SI` | `0x0F` | [Shift In](#) | ❌ |
|
| `SI` | `0x0F` | [Shift In](#) | ❌ |
|
||||||
| `CAN` | `0x18` | [Cancel Parsing](sequences/can.md) | ✅ |
|
| `CAN` | `0x18` | [Cancel Parsing](sequences/can.md) | ✅ |
|
||||||
| `SUB` | `0x1A` | [Cancel Parsing (Alias)](sequences/can.md) | ✅ |
|
| `SUB` | `0x1A` | [Cancel Parsing (Alias)](sequences/can.md) | ✅ |
|
||||||
| `IND` | `ESC D` | [Index](sequences/ind.md) | ✅ |
|
| `IND` | `ESC D` | [Index](sequences/ind.md) | ✅ |
|
||||||
| `NEL` | `ESC E` | [Next Line](sequences/nel.md) | ✅ |
|
| `NEL` | `ESC E` | [Next Line](sequences/nel.md) | ✅ |
|
||||||
| `HTS` | `ESC H` | [Horizontal Tab Set](sequences/hts.md) | ✅ |
|
| `HTS` | `ESC H` | [Horizontal Tab Set](sequences/hts.md) | ✅ |
|
||||||
| `RI` | `ESC M` | [Reverse Index](sequences/ri.md) | ⚠️ |
|
| `RI` | `ESC M` | [Reverse Index](sequences/ri.md) | ⚠️ |
|
||||||
| `SS2` | `ESC N` | [Single Shift 2](#) | ❌ |
|
| `SS2` | `ESC N` | [Single Shift 2](#) | ❌ |
|
||||||
| `SS3` | `ESC O` | [Single Shift 3](#) | ❌ |
|
| `SS3` | `ESC O` | [Single Shift 3](#) | ❌ |
|
||||||
| `SPA` | `ESC V` | [Start Protected Area](#) | ❌ |
|
| `SPA` | `ESC V` | [Start Protected Area](#) | ❌ |
|
||||||
| `EPA` | `ESC W` | [End Protected Area](#) | ❌ |
|
| `EPA` | `ESC W` | [End Protected Area](#) | ❌ |
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
# Bell
|
# Bell
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ------ |
|
||||||
| Text | |
|
| Text | |
|
||||||
| Hex | `0x07` |
|
| Hex | `0x07` |
|
||||||
|
|
||||||
Rings a "bell" to alert the operator to some condition.
|
Rings a "bell" to alert the operator to some condition.
|
||||||
|
|
||||||
## Implementation Details
|
## Implementation Details
|
||||||
|
|
||||||
* ghostty logs "BELL"
|
- ghostty logs "BELL"
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
* Add a configurable visual bell -- common in most terminal emulators --
|
- Add a configurable visual bell -- common in most terminal emulators --
|
||||||
to flash the border.
|
to flash the border.
|
||||||
* Mark the window as requesting attention, most operating systems support
|
- Mark the window as requesting attention, most operating systems support
|
||||||
this. For example, Windows windows will flash in the toolbar.
|
this. For example, Windows windows will flash in the toolbar.
|
||||||
* Support an audible bell.
|
- Support an audible bell.
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
* https://vt100.net/docs/vt100-ug/chapter3.html
|
- https://vt100.net/docs/vt100-ug/chapter3.html
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# Backspace
|
# Backspace
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ------ |
|
||||||
| Text | |
|
| Text | |
|
||||||
| Hex | `0x08` |
|
| Hex | `0x08` |
|
||||||
|
|
||||||
Move the cursor left one cell.
|
Move the cursor left one cell.
|
||||||
|
|
||||||
@ -11,9 +11,9 @@ TODO: Details about how this interacts with soft wrapping.
|
|||||||
|
|
||||||
## Implementation Details
|
## Implementation Details
|
||||||
|
|
||||||
* ghostty implements this naively as `cursor.x -|= 1` (`-|=` being a
|
- ghostty implements this naively as `cursor.x -|= 1` (`-|=` being a
|
||||||
saturating subtraction).
|
saturating subtraction).
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
* Soft wrap integration
|
- Soft wrap integration
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# Cancel Parsing
|
# Cancel Parsing
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ---------------- |
|
||||||
| Text | |
|
| Text | |
|
||||||
| Hex | `0x18` or `0x1A` |
|
| Hex | `0x18` or `0x1A` |
|
||||||
|
|
||||||
Cancels sequence parsing. Any partially completed sequence such as `ESC`
|
Cancels sequence parsing. Any partially completed sequence such as `ESC`
|
||||||
can send `0x18` and revert back to an unparsed state. The sequence characters
|
can send `0x18` and revert back to an unparsed state. The sequence characters
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
# Carriage Return
|
# Carriage Return
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ------ |
|
||||||
| Text | |
|
| Text | |
|
||||||
| Hex | `0x0D` |
|
| Hex | `0x0D` |
|
||||||
|
|
||||||
Moves the cursor to the left-most column and resets any pending wrap flags.
|
Moves the cursor to the left-most column and resets any pending wrap flags.
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
* Integration with left/right scrolling margins
|
- Integration with left/right scrolling margins
|
||||||
* Integration with origin mode
|
- Integration with origin mode
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
# Enquiry (Answerback)
|
# Enquiry (Answerback)
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ------ |
|
||||||
| Text | |
|
| Text | |
|
||||||
| Hex | `0x05` |
|
| Hex | `0x05` |
|
||||||
|
|
||||||
Sends an answerback string. In the VT100, this was configurable by the
|
Sends an answerback string. In the VT100, this was configurable by the
|
||||||
operator.
|
operator.
|
||||||
|
|
||||||
## Implementation Details
|
## Implementation Details
|
||||||
|
|
||||||
* ghostty always sends `""`
|
- ghostty always sends `""`
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
* Make the answerback configurable
|
- Make the answerback configurable
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
* https://vt100.net/docs/vt100-ug/chapter3.html
|
- https://vt100.net/docs/vt100-ug/chapter3.html
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# Form Feed
|
# Form Feed
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ------ |
|
||||||
| Text | |
|
| Text | |
|
||||||
| Hex | `0x0C` |
|
| Hex | `0x0C` |
|
||||||
|
|
||||||
Equivalent to [linefeed](lf.md).
|
Equivalent to [linefeed](lf.md).
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Horizontal Tab Set
|
# Horizontal Tab Set
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ----------- |
|
||||||
| Text | `ESC H` |
|
| Text | `ESC H` |
|
||||||
| Hex | `0x18 0x48` |
|
| Hex | `0x18 0x48` |
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Index
|
# Index
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ----------- |
|
||||||
| Text | `ESC D` |
|
| Text | `ESC D` |
|
||||||
| Hex | `0x18 0x44` |
|
| Hex | `0x18 0x44` |
|
||||||
|
|
||||||
@ -10,10 +10,10 @@ if necessary. This always unsets the pending wrap state.
|
|||||||
|
|
||||||
If the cursor is currently outside the scrolling region:
|
If the cursor is currently outside the scrolling region:
|
||||||
|
|
||||||
* move the cursor down one line if it is not on bottom line of the screen.
|
- move the cursor down one line if it is not on bottom line of the screen.
|
||||||
|
|
||||||
If the cursor is inside the scrolling region:
|
If the cursor is inside the scrolling region:
|
||||||
|
|
||||||
* If the cursor is on the bottom-most line of the screen: invoke
|
- If the cursor is on the bottom-most line of the screen: invoke
|
||||||
[scroll up](su.md) with the value `1`.
|
[scroll up](su.md) with the value `1`.
|
||||||
* Else: move the cursor one line down.
|
- Else: move the cursor one line down.
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
# Linefeed
|
# Linefeed
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ------ |
|
||||||
| Text | |
|
| Text | |
|
||||||
| Hex | `0x0A` |
|
| Hex | `0x0A` |
|
||||||
|
|
||||||
Invoke [Index](ind.md).
|
Invoke [Index](ind.md).
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
* Linefeed mode (mode 20)
|
- Linefeed mode (mode 20)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Index
|
# Index
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ----------- |
|
||||||
| Text | `ESC E` |
|
| Text | `ESC E` |
|
||||||
| Hex | `0x18 0x45` |
|
| Hex | `0x18 0x45` |
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Reverse Index
|
# Reverse Index
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ----------- |
|
||||||
| Text | `ESC M` |
|
| Text | `ESC M` |
|
||||||
| Hex | `0x18 0x4D` |
|
| Hex | `0x18 0x4D` |
|
||||||
|
|
||||||
@ -9,13 +9,13 @@ Reverse [index](ind.md). This unsets the pending wrap state.
|
|||||||
|
|
||||||
If the cursor is outside of the scrolling region:
|
If the cursor is outside of the scrolling region:
|
||||||
|
|
||||||
* move the cursor one line up unless it is the top-most line of the screen.
|
- move the cursor one line up unless it is the top-most line of the screen.
|
||||||
|
|
||||||
If the cursor is inside the scrolling region:
|
If the cursor is inside the scrolling region:
|
||||||
|
|
||||||
* If the cursor is on the top-most line: invoke [scroll down](#) with value `1`
|
- If the cursor is on the top-most line: invoke [scroll down](#) with value `1`
|
||||||
* Else: move the cursor one line up.
|
- Else: move the cursor one line up.
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
* Scroll region edge cases
|
- Scroll region edge cases
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# Tab
|
# Tab
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ------ |
|
||||||
| Text | |
|
| Text | |
|
||||||
| Hex | `0x09` |
|
| Hex | `0x09` |
|
||||||
|
|
||||||
Move the cursor right to the next tab stop.
|
Move the cursor right to the next tab stop.
|
||||||
|
|
||||||
@ -17,5 +17,5 @@ Initially, tab stops are set on every 8th column.
|
|||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
* Integration with left/right margins of the scrolling region.
|
- Integration with left/right margins of the scrolling region.
|
||||||
* How does horizontal tab interact with the pending wrap state?
|
- How does horizontal tab interact with the pending wrap state?
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# Vertical Tab
|
# Vertical Tab
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
| --- | --- |
|
| ---- | ------ |
|
||||||
| Text | |
|
| Text | |
|
||||||
| Hex | `0x0B` |
|
| Hex | `0x0B` |
|
||||||
|
|
||||||
Equivalent to [linefeed](lf.md).
|
Equivalent to [linefeed](lf.md).
|
||||||
|
@ -38,4 +38,3 @@ the full test suite against only a single terminal emulator.
|
|||||||
This test suite expects the `ghostty` binary to be in _this directory_.
|
This test suite expects the `ghostty` binary to be in _this directory_.
|
||||||
You can manually copy it into place. Each time you modify the binary, you
|
You can manually copy it into place. Each time you modify the binary, you
|
||||||
must rebuild the Docker image.
|
must rebuild the Docker image.
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user