docs: reflow README.md
This commit is contained in:
parent
377b8ba6b3
commit
1317de3f72
1 changed files with 52 additions and 46 deletions
98
README.md
98
README.md
|
|
@ -8,13 +8,14 @@ and is my daily driver for almost everything.
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
|
|
||||||
- **Lightning Fast** TUI with ≤6ms frame times, **low latency** input handling
|
- **Lightning Fast** TUI with ≤6ms frame times, **low latency** input
|
||||||
and smooth **animated scrolling**
|
handling and smooth **animated scrolling**
|
||||||
- Intuitive UI with **tabs**, **scrollbars** and **palettes** with full
|
- Intuitive UI with **tabs**, **scrollbars** and **palettes** with full
|
||||||
**mouse** support for all UI elements
|
**mouse** support for all UI elements
|
||||||
- Support for more than **70 programming languages**, **zero
|
- Support for more than **70 programming languages**, **zero
|
||||||
configuration** needed, via **tree-sitter** powered syntax highlighting
|
configuration** needed, via **tree-sitter** powered syntax highlighting
|
||||||
- **Language Server Protocol** pre configured support for most language servers
|
- **Language Server Protocol** pre configured support for most language
|
||||||
|
servers
|
||||||
- Powerful **multi-cursor** editing and integrated **clipboard history**
|
- Powerful **multi-cursor** editing and integrated **clipboard history**
|
||||||
- Powerful configurable keybinding system that supports **modal** and
|
- Powerful configurable keybinding system that supports **modal** and
|
||||||
**non-modal** editing styles
|
**non-modal** editing styles
|
||||||
|
|
@ -27,26 +28,29 @@ and is my daily driver for almost everything.
|
||||||
- Hybrid rope/piece-table buffer system, edit **very large files** with
|
- Hybrid rope/piece-table buffer system, edit **very large files** with
|
||||||
**thousands of cursors**
|
**thousands of cursors**
|
||||||
- Infinite **undo** (at least until you run out of ram)
|
- Infinite **undo** (at least until you run out of ram)
|
||||||
- Full **unicode** support, including support for the kitty text sizing protocol
|
- Full **unicode** support, including support for the kitty text sizing
|
||||||
|
protocol
|
||||||
- Plenty of **themes** included and support for vscode themes via the
|
- Plenty of **themes** included and support for vscode themes via the
|
||||||
flow-themes project
|
flow-themes project
|
||||||
- Runs on **Linux, FreeBSD, MacOS, Windows and Android** (under termux) with
|
- Runs on **Linux, FreeBSD, MacOS, Windows and Android** (under termux)
|
||||||
easy **cross-compilation** to all supported targets
|
with easy **cross-compilation** to all supported targets
|
||||||
|
|
||||||
|
|
||||||
# Requirements
|
# Requirements
|
||||||
|
|
||||||
- A modern terminal with **24bit color** and, ideally, **kitty keyboard
|
- A modern terminal with **24bit color** and, ideally, **kitty keyboard
|
||||||
protocol** support. **Kitty**, **Foot** and **Ghostty** are the recommended
|
protocol** support. **Kitty**, **Foot** and **Ghostty** are the
|
||||||
terminals at this time. **Zellij** also works well. Most other terminals will
|
recommended terminals at this time. **Zellij** also works well. Most
|
||||||
work, but likely with reduced functionality.
|
other terminals will work, but likely with reduced functionality.
|
||||||
- **NerdFont** support. Either via terminal font fallback or a patched font.
|
- **NerdFont** support. Either via terminal font fallback or a patched
|
||||||
|
font.
|
||||||
- A **UTF-8** locale
|
- A **UTF-8** locale
|
||||||
|
|
||||||
|
|
||||||
# Roadmap
|
# Roadmap
|
||||||
|
|
||||||
See our [devlog](https://flow-control.dev/devlog/2025/) for on-going updates from the development team.
|
See our [devlog](https://flow-control.dev/devlog/2025/) for on-going
|
||||||
|
updates from the development team.
|
||||||
|
|
||||||
## In Development
|
## In Development
|
||||||
|
|
||||||
|
|
@ -63,8 +67,8 @@ See our [devlog](https://flow-control.dev/devlog/2025/) for on-going updates fro
|
||||||
|
|
||||||
# Download / Install
|
# Download / Install
|
||||||
|
|
||||||
There is an [installation guide](https://flow-control.dev/installation) on the
|
There is an [installation guide](https://flow-control.dev/installation) on
|
||||||
main website, and source, release and nightly build binary
|
the main website, and source, release and nightly build binary
|
||||||
[downloads](https://flow-control.dev/downloads).
|
[downloads](https://flow-control.dev/downloads).
|
||||||
|
|
||||||
Or check your favorite local system package repository.
|
Or check your favorite local system package repository.
|
||||||
|
|
@ -82,9 +86,9 @@ Flow builds with zig 0.15.2 at this time. Build with:
|
||||||
zig build -Doptimize=ReleaseSafe
|
zig build -Doptimize=ReleaseSafe
|
||||||
```
|
```
|
||||||
|
|
||||||
Zig will by default build a binary optimized for your specific CPU. If you get
|
Zig will by default build a binary optimized for your specific CPU. If you
|
||||||
illegal instruction errors add `-Dcpu=baseline` to the build command to produce
|
get illegal instruction errors add `-Dcpu=baseline` to the build command to
|
||||||
a binary with generic CPU support.
|
produce a binary with generic CPU support.
|
||||||
|
|
||||||
|
|
||||||
Thanks to Zig you may also cross-compile from any host to pretty much any
|
Thanks to Zig you may also cross-compile from any host to pretty much any
|
||||||
|
|
@ -105,8 +109,8 @@ The output binary is:
|
||||||
zig-out/bin/flow
|
zig-out/bin/flow
|
||||||
```
|
```
|
||||||
|
|
||||||
It is statically built (by default) and contains all the required tree-sitter parsers
|
It is statically built (by default) and contains all the required
|
||||||
and queries. No additional runtime files are required.
|
tree-sitter parsers and queries. No additional runtime files are required.
|
||||||
|
|
||||||
|
|
||||||
# Running Flow Control
|
# Running Flow Control
|
||||||
|
|
@ -125,8 +129,9 @@ Or if you prefer, let zig install it in your home directory:
|
||||||
zig build -Doptimize=ReleaseSafe --prefix ~/.local
|
zig build -Doptimize=ReleaseSafe --prefix ~/.local
|
||||||
```
|
```
|
||||||
|
|
||||||
Flow Control is a single statically linked binary. No further runtime files are
|
Flow Control is a single statically linked binary. No further runtime files
|
||||||
required. You may install it on another system by simply copying the binary.
|
are required. You may install it on another system by simply copying the
|
||||||
|
binary.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
scp zig-out/bin/flow root@otherhost:/usr/local/bin
|
scp zig-out/bin/flow root@otherhost:/usr/local/bin
|
||||||
|
|
@ -138,8 +143,9 @@ Files to load may be specifed on the command line:
|
||||||
flow fileA.zig fileB.zig
|
flow fileA.zig fileB.zig
|
||||||
```
|
```
|
||||||
|
|
||||||
The last file will be opened and the previous files will be placed in reverse
|
The last file will be opened and the previous files will be placed in
|
||||||
order at the top of the recent files list. Switch to recent files with Ctrl-e.
|
reverse order at the top of the recent files list. Switch to recent files
|
||||||
|
with Ctrl-e.
|
||||||
|
|
||||||
Common target line specifiers are supported too:
|
Common target line specifiers are supported too:
|
||||||
|
|
||||||
|
|
@ -171,13 +177,13 @@ See `flow --help` for the full list of command line options.
|
||||||
A basic user manual is available inside flow. You can open it with the
|
A basic user manual is available inside flow. You can open it with the
|
||||||
`Open help` command (F1).
|
`Open help` command (F1).
|
||||||
|
|
||||||
It is also available in the website [documentation](https://flow-control.dev/docs/)
|
It is also available in the website
|
||||||
section.
|
[documentation](https://flow-control.dev/docs/) section.
|
||||||
|
|
||||||
## Development Resources
|
## Development Resources
|
||||||
|
|
||||||
Additional [developer](https://flow-control.dev/docs/#resources) resources can
|
Additional [developer](https://flow-control.dev/docs/#resources) resources
|
||||||
be found on the Flow Control website at.
|
can be found on the Flow Control website at.
|
||||||
|
|
||||||
There is also an AI generated developer guide at
|
There is also an AI generated developer guide at
|
||||||
[](https://deepwiki.com/neurocyte/flow).
|
[](https://deepwiki.com/neurocyte/flow).
|
||||||
|
|
@ -186,23 +192,23 @@ Accuracy may vary. Check details against the referenced source code.
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
|
|
||||||
Configuration is mostly dynamically maintained with various commands in the UI.
|
Configuration is mostly dynamically maintained with various commands in the
|
||||||
It is stored under the standard user configuration path. Usually
|
UI. It is stored under the standard user configuration path. Usually
|
||||||
`~/.config/flow` on Linux. %APPDATA%\Roaming\flow on Windows. Somewhere magical
|
`~/.config/flow` on Linux. %APPDATA%\Roaming\flow on Windows. Somewhere
|
||||||
on MacOS.
|
magical on MacOS.
|
||||||
|
|
||||||
There are commands to open the various configuration files, so you don't have to
|
There are commands to open the various configuration files, so you don't
|
||||||
manually find them. Look for commands starting with `Edit` in the command
|
have to manually find them. Look for commands starting with `Edit` in the
|
||||||
palette.
|
command palette.
|
||||||
|
|
||||||
File types may be configured with the `Edit file type configuration` command.
|
File types may be configured with the `Edit file type configuration`
|
||||||
You can also create a new file type by adding a new `.conf` file to the
|
command. You can also create a new file type by adding a new `.conf` file
|
||||||
`file_type` directory. Have a look at an existing file type to see what options
|
to the `file_type` directory. Have a look at an existing file type to see
|
||||||
are available.
|
what options are available.
|
||||||
|
|
||||||
Logs, traces and per-project most recently used file lists are stored in the
|
Logs, traces and per-project most recently used file lists are stored in
|
||||||
standard user application state directory. Usually `~/.local/state/flow` on
|
the standard user application state directory. Usually
|
||||||
Linux and %APPDATA%\Roaming\flow on Windows.
|
`~/.local/state/flow` on Linux and %APPDATA%\Roaming\flow on Windows.
|
||||||
|
|
||||||
|
|
||||||
# Key bindings and commands
|
# Key bindings and commands
|
||||||
|
|
@ -213,16 +219,16 @@ Press `ctrl+shift+p` or `alt+x` to show the command palette.
|
||||||
Press `ctrl+F2` to see a full list of all current keybindings and commands.
|
Press `ctrl+F2` to see a full list of all current keybindings and commands.
|
||||||
|
|
||||||
Run the `Edit keybindings` command to save the current keybinding mode to a
|
Run the `Edit keybindings` command to save the current keybinding mode to a
|
||||||
file and open it for editing. Save your customized keybinds under a new name
|
file and open it for editing. Save your customized keybinds under a new
|
||||||
in the same directory to create an entirely new keybinding mode. Keybinding
|
name in the same directory to create an entirely new keybinding mode.
|
||||||
changes will take effect on restart.
|
Keybinding changes will take effect on restart.
|
||||||
|
|
||||||
|
|
||||||
# Terminal configuration
|
# Terminal configuration
|
||||||
|
|
||||||
Kitty, Ghostty and most other terminals have default keybindings that conflict
|
Kitty, Ghostty and most other terminals have default keybindings that
|
||||||
with common editor commands. I highly recommend rebinding them to keys that are
|
conflict with common editor commands. I highly recommend rebinding them to
|
||||||
not generally used anywhere else.
|
keys that are not generally used anywhere else.
|
||||||
|
|
||||||
For Kitty rebinding `kitty_mod` is usually enough:
|
For Kitty rebinding `kitty_mod` is usually enough:
|
||||||
```
|
```
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue