• Stars
    star
    202
  • Rank 193,691 (Top 4 %)
  • Language
    Rust
  • Created almost 6 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An experimental, kakoune-inspired CLI-centric text/code editor with |-shaped cursor (in Rust)

Travis CI Build Status Gitter Chat

breeze - An innovative, modal, CLI-centric text/code editor

Features & Goals

  • Heavily inspired by Kakoune
  • Modal & CLI-centric, but in a modern edition
    • |-shaped cursor
    • Kakoune-inspired editing experience
  • Core library should compile to WebAssembly, so it can run everwhere, especially in the browser
  • WebAssembly plugin support
    • Plugin-centric
    • Sandboxed, so they can't steal your Bitcoins!

I have recently switched to kakoune after years (decades?) of using Vim. I think changing action, movement into movement, action is a brilliant idea. I enjoy simplicity of Kakoune and I am generally quite happy using it.

However I have couple of ideas how Kakoune could be better and/or disagree with a couple of things in it. So I decided to hack together my own code editor to demonstrate / try them.

What is distinct about Breeze

Rust. Life is too short not to use Rust.

Terminals can do |-shaped cursors now, people! We don't have to use the blocky cursor anymore! In Breeze | is the only cursor shape. Whole design assumes |-shaped cursor. It feels more like a graphical text editor, than traditional CLI ones. A fresh breeze in CLI terminal world.

Kakoune seem very Vim-golf-centric. In Breeze the philosophy is slightly different. It doesn't matter to me in how many keystrokes one can perform certain editing operation. What matter to me most is predictable, natural, easy to use modal text edition. Muscle memory and rapid keypressing without having to pay much attention is what I am aiming for.

Status and plans

Breeze Screenshot

Some stuff works, but still very, very early. And considering how little time I have, it will probably stay this way for a long while. I might hack on it continously in the future, or I might loose the motivation. I am happy to accept collaborators and help.

Running

If you don't have Rust installed go to https://rustup.rs

Aftewards:

cargo run --release -- [file_path]

to run from source code, or

cargo install -f

to install.

How to use (what works)

Breeze is modal. You are typically in the normal mode, enter insert mode with i, and leave it with Esc. You know... just like in Vim or Kakoune.

Breeze has selections. Kind of like in Visual mode in Vim, just more automatic. If you've used Kakoune - they are very much like in Kakoune.

What should work already:

  • basic moves: hjklwb%
  • numerical prefix for most of implemented stuff
  • basic insert mode: i, o, Esc
  • deletion: d, c
  • copy&paste y, p, P
  • g (followed by h, j, k, l)
  • Ctrl-P (!!!)
  • ' - switch selection direction
  • < and >
  • line selection: x, X
  • undo: u U
  • basic commands: :q, :e, :bn, :bp, :w

More Repositories

1

rdedup

Data deduplication engine, supporting optional compression and public key encryption.
Rust
829
star
2

mioco.pre-0.9

Scalable, coroutine-based, asynchronous IO handling library for Rust programming language. (aka MIO COroutines).
Rust
457
star
3

rhex

ASCII terminal hexagonal map roguelike written in Rust
Rust
142
star
4

mioco

[no longer maintained] Scalable, coroutine-based, fibers/green-threads for Rust. (aka MIO COroutines).
Rust
141
star
5

rust-bitcoin-indexer

Powerful & versatile Bitcoin Indexer, in Rust
Rust
122
star
6

pariter

Parallel iterator processing library for Rust
Rust
100
star
7

rustyhex

Simple roguelike written in Rust language.
Rust
90
star
8

async-readline

Asynchronous readline-like interface (PoC ATM)
Rust
75
star
9

titanos

Titanos an exercise in writing OS kernel in Rust programming language.
Rust
73
star
10

hex2d-rs

Helper library for working with 2d hex-grid maps
Rust
62
star
11

stpl

Super templates (html, etc.) with plain-Rust; no macros, no textfiles
Rust
37
star
12

sniper

Educational Rust implemenation of Auction Sniper from Growing Object-Oriented Software, Guided By Tests
Rust
36
star
13

tokio-fiber

Async fibers for Rust `futures` and `tokio` using coroutines. Attempt at a `mioco` replacement.
Rust
31
star
14

dotr

Very simple dotfile manager
Rust
26
star
15

text-minimap

Generate text minimap/preview using Braille Patterns
Rust
24
star
16

titanium-draft

Titanium is an exercise in writing OS kernel in Rust programming language.
Rust
24
star
17

overflow-proof

Monadic checked arithmetic for Rust
Rust
23
star
18

boulder-dash.rs

A remake of the classic Boulder Dash game in Rust, using Amethyst.rs engine
Rust
21
star
19

docker-source-checksum

Deterministic source-based docker image checksum
Rust
21
star
20

vim-smarttabs

Vim Smart Tabs
Vim Script
18
star
21

colerr

Colorize stderr
Rust
17
star
22

tagwiki

A wiki in which you link to pages by specifing hashtags they contain.
Rust
16
star
23

htmx-sorta

Rust + htmx + tailwind + nix + redb + twind demo web app
Rust
13
star
24

xmppconsole

Simple readline and libstrophe based CLI XMPP client.
C
12
star
25

rust-bin-template

Rust project template with CI-built releases
Shell
12
star
26

fs-dir-cache

A CLI tool for CIs and build scripts, making file system based caching easy and correct (locking, eviction, etc.)
Rust
11
star
27

atifand.sh

Automatic fan speed control for ATI video cards using catalyst driver under Linux.
Shell
9
star
28

cbuf-rs

Circular Buffer for Rust
Rust
8
star
29

recycle-rs

Simple allocated buffers reuse for Rust
Rust
7
star
30

ttcms

Tiny Trivial CMS (with Markdown)
PHP
7
star
31

mioecho

Rust mio echo server.
Rust
7
star
32

chain-monitor

web-UI based tool to monitor chain heights of various blockchains as reported by different sources
Rust
6
star
33

convi

Convi - convenient (but safe) conversion (From-like) traits for Rust
Rust
5
star
34

hyper-get

curl-like tool/library written in Rust using Hyper
Rust
4
star
35

dpcgoban

Simple and efficient J2ME application for playing Go.
Java
4
star
36

block-iter

Another experiment in Bitcoin indexing
Rust
4
star
37

rclist-rs

Rust library: `RcList` is read-only, append only list (log), that can share common tail (history) with other `RcList`-s.
Rust
4
star
38

node-tcp-echo-server

The simplest node tcp echo server.
JavaScript
3
star
39

brainwiki

Moved to `tagwiki`. A wiki for my brain
Rust
3
star
40

redb-bincode

A wrapper around `redb` that makes it store everything as `bincode`d
Rust
3
star
41

muttmailer

Script for managing mass mailing from the console.
Shell
2
star
42

titanium.rs

A library for writing embeddded (baremetal) software in Rust
Rust
2
star
43

ratelimit-gcra

GCRA rate limit algorithm extracted from `redis-cell`
Rust
2
star
44

rust-default

`use default::default;` for your Rust crate
Rust
2
star
45

dack

Dack is Ack(grep-like tool)-like tool.
D
2
star
46

hex2d-dpcext-rs

dpc's hacky extensions to hex2d-rs library
Rust
2
star
47

boardgametimer

Android Board Game Timer
Java
2
star
48

dedns

Dedns is a public censorship-resistant, tamper-proof, 0-setup identity system.
1
star
49

insideout

Wrap composed types inside-out (library for Rust)
Rust
1
star
50

rust-htmx-template

My simple template web app repo
Rust
1
star
51

todo

My tiny "productivity" system
Nix
1
star
52

flakes

My flake related utilities and templates
Nix
1
star
53

dpc

1
star
54

rdup-du

rdup backup disk usage estimator
Rust
1
star
55

livecd-editor

Simple Makefile based LiveCD .iso editor (for debian/ubuntu)
Makefile
1
star
56

crane-deps-rebuild-repro

You don't want to know
Nix
1
star