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
|
||||
|
||||
- **Lightning Fast** TUI with ≤6ms frame times, **low latency** input handling
|
||||
and smooth **animated scrolling**
|
||||
- **Lightning Fast** TUI with ≤6ms frame times, **low latency** input
|
||||
handling and smooth **animated scrolling**
|
||||
- Intuitive UI with **tabs**, **scrollbars** and **palettes** with full
|
||||
**mouse** support for all UI elements
|
||||
- Support for more than **70 programming languages**, **zero
|
||||
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 configurable keybinding system that supports **modal** and
|
||||
**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
|
||||
**thousands of cursors**
|
||||
- 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
|
||||
flow-themes project
|
||||
- Runs on **Linux, FreeBSD, MacOS, Windows and Android** (under termux) with
|
||||
easy **cross-compilation** to all supported targets
|
||||
- Runs on **Linux, FreeBSD, MacOS, Windows and Android** (under termux)
|
||||
with easy **cross-compilation** to all supported targets
|
||||
|
||||
|
||||
# Requirements
|
||||
|
||||
- A modern terminal with **24bit color** and, ideally, **kitty keyboard
|
||||
protocol** support. **Kitty**, **Foot** and **Ghostty** are the recommended
|
||||
terminals at this time. **Zellij** also works well. Most other terminals will
|
||||
work, but likely with reduced functionality.
|
||||
- **NerdFont** support. Either via terminal font fallback or a patched font.
|
||||
protocol** support. **Kitty**, **Foot** and **Ghostty** are the
|
||||
recommended terminals at this time. **Zellij** also works well. Most
|
||||
other terminals will work, but likely with reduced functionality.
|
||||
- **NerdFont** support. Either via terminal font fallback or a patched
|
||||
font.
|
||||
- A **UTF-8** locale
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
|
@ -63,8 +67,8 @@ See our [devlog](https://flow-control.dev/devlog/2025/) for on-going updates fro
|
|||
|
||||
# Download / Install
|
||||
|
||||
There is an [installation guide](https://flow-control.dev/installation) on the
|
||||
main website, and source, release and nightly build binary
|
||||
There is an [installation guide](https://flow-control.dev/installation) on
|
||||
the main website, and source, release and nightly build binary
|
||||
[downloads](https://flow-control.dev/downloads).
|
||||
|
||||
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 will by default build a binary optimized for your specific CPU. If you get
|
||||
illegal instruction errors add `-Dcpu=baseline` to the build command to produce
|
||||
a binary with generic CPU support.
|
||||
Zig will by default build a binary optimized for your specific CPU. If you
|
||||
get illegal instruction errors add `-Dcpu=baseline` to the build command to
|
||||
produce a binary with generic CPU support.
|
||||
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
It is statically built (by default) and contains all the required tree-sitter parsers
|
||||
and queries. No additional runtime files are required.
|
||||
It is statically built (by default) and contains all the required
|
||||
tree-sitter parsers and queries. No additional runtime files are required.
|
||||
|
||||
|
||||
# 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
|
||||
```
|
||||
|
||||
Flow Control is a single statically linked binary. No further runtime files are
|
||||
required. You may install it on another system by simply copying the binary.
|
||||
Flow Control is a single statically linked binary. No further runtime files
|
||||
are required. You may install it on another system by simply copying the
|
||||
binary.
|
||||
|
||||
```shell
|
||||
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
|
||||
```
|
||||
|
||||
The last file will be opened and the previous files will be placed in reverse
|
||||
order at the top of the recent files list. Switch to recent files with Ctrl-e.
|
||||
The last file will be opened and the previous files will be placed in
|
||||
reverse order at the top of the recent files list. Switch to recent files
|
||||
with Ctrl-e.
|
||||
|
||||
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
|
||||
`Open help` command (F1).
|
||||
|
||||
It is also available in the website [documentation](https://flow-control.dev/docs/)
|
||||
section.
|
||||
It is also available in the website
|
||||
[documentation](https://flow-control.dev/docs/) section.
|
||||
|
||||
## Development Resources
|
||||
|
||||
Additional [developer](https://flow-control.dev/docs/#resources) resources can
|
||||
be found on the Flow Control website at.
|
||||
Additional [developer](https://flow-control.dev/docs/#resources) resources
|
||||
can be found on the Flow Control website at.
|
||||
|
||||
There is also an AI generated developer guide at
|
||||
[](https://deepwiki.com/neurocyte/flow).
|
||||
|
|
@ -186,23 +192,23 @@ Accuracy may vary. Check details against the referenced source code.
|
|||
|
||||
# Configuration
|
||||
|
||||
Configuration is mostly dynamically maintained with various commands in the UI.
|
||||
It is stored under the standard user configuration path. Usually
|
||||
`~/.config/flow` on Linux. %APPDATA%\Roaming\flow on Windows. Somewhere magical
|
||||
on MacOS.
|
||||
Configuration is mostly dynamically maintained with various commands in the
|
||||
UI. It is stored under the standard user configuration path. Usually
|
||||
`~/.config/flow` on Linux. %APPDATA%\Roaming\flow on Windows. Somewhere
|
||||
magical on MacOS.
|
||||
|
||||
There are commands to open the various configuration files, so you don't have to
|
||||
manually find them. Look for commands starting with `Edit` in the command
|
||||
palette.
|
||||
There are commands to open the various configuration files, so you don't
|
||||
have to manually find them. Look for commands starting with `Edit` in the
|
||||
command palette.
|
||||
|
||||
File types may be configured with the `Edit file type configuration` command.
|
||||
You can also create a new file type by adding a new `.conf` file to the
|
||||
`file_type` directory. Have a look at an existing file type to see what options
|
||||
are available.
|
||||
File types may be configured with the `Edit file type configuration`
|
||||
command. You can also create a new file type by adding a new `.conf` file
|
||||
to the `file_type` directory. Have a look at an existing file type to see
|
||||
what options are available.
|
||||
|
||||
Logs, traces and per-project most recently used file lists are stored in the
|
||||
standard user application state directory. Usually `~/.local/state/flow` on
|
||||
Linux and %APPDATA%\Roaming\flow on Windows.
|
||||
Logs, traces and per-project most recently used file lists are stored in
|
||||
the standard user application state directory. Usually
|
||||
`~/.local/state/flow` on Linux and %APPDATA%\Roaming\flow on Windows.
|
||||
|
||||
|
||||
# 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.
|
||||
|
||||
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
|
||||
in the same directory to create an entirely new keybinding mode. Keybinding
|
||||
changes will take effect on restart.
|
||||
file and open it for editing. Save your customized keybinds under a new
|
||||
name in the same directory to create an entirely new keybinding mode.
|
||||
Keybinding changes will take effect on restart.
|
||||
|
||||
|
||||
# Terminal configuration
|
||||
|
||||
Kitty, Ghostty and most other terminals have default keybindings that conflict
|
||||
with common editor commands. I highly recommend rebinding them to keys that are
|
||||
not generally used anywhere else.
|
||||
Kitty, Ghostty and most other terminals have default keybindings that
|
||||
conflict with common editor commands. I highly recommend rebinding them to
|
||||
keys that are not generally used anywhere else.
|
||||
|
||||
For Kitty rebinding `kitty_mod` is usually enough:
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue