From 1317de3f72777aa57c867647007ca8fdb90f4923 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Mon, 2 Feb 2026 12:13:27 +0100 Subject: [PATCH] docs: reflow README.md --- README.md | 98 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 52 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index 6121cc5..bd7e61f 100644 --- a/README.md +++ b/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 [![Ask DeepWiki](https://deepwiki.com/badge.svg)](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: ```