18 releases (4 breaking)

new 0.5.2 Jan 21, 2021
0.5.1 Jan 19, 2021
0.4.9 Jan 16, 2021
0.3.0 Jan 6, 2021
0.1.1 Jan 3, 2021

#4 in Text editors

Download history 78/week @ 2021-01-01 99/week @ 2021-01-08 164/week @ 2021-01-15

114 downloads per month

MIT license

355KB
3.5K SLoC


lino

A command line text editor with notepad like key bindings. [WIP]

screenshot

Crates.io Crates.io Crates.io

Usage (Key Bindings)

Key Function
, , , Move cursor
Ctrl + , Move by word
Page Up , Page Down Move by page (scrolling)
Home Move to line start
End Move to line end
Shift + , , , Select
Ctrl + Shift + , Select by word
Shift + Page Up , Page down Select by page
Shift + Home Select upto line start
Shift + End Select upto line end
Ctrl + A Select all
Backspace Delete backward
Delete Delete forward
Ctrl / Alt + Backspace Delete backward by word
Ctrl / Alt + Delete Delete forward by word
Shift + Delete Delete current line
Ctrl / Alt + Move current line up
Ctrl / Alt + Move current line down
Ctrl / Alt + Shift + Duplicate current line upward (Doesn't work on Windows Terminal)
Ctrl / Alt + Shift + Duplicate current line downward (Doesn't work on Windows Terminal)
Alt + ] / Increase indentation
Alt + [ / Decrease indentation
Enter Enter auto-indented new line
Ctrl + Enter Enter non-indented new line
Ctrl + X Cut
Ctrl + C Copy
Ctrl + V Paste
Ctrl + Z Undo
Ctrl + Y Redo
Ctrl + S Save
Alt + S Save as
Ctrl + W Close

Some key-bindings don't work on Linux.

Install

You will need to have Rust (2018 or higher) installed on your system before proceeding.
Install it from https://www.rust-lang.org/tools/install

1. Install with Cargo

cargo install lino

2. Run

lino <optional-filename>

Tested on Windows 10 and WSL (Ubuntu 18.04)

Build

You will need to have Rust (2018 or higher) installed on your system before proceeding.
Install it from https://www.rust-lang.org/tools/install

1. Clone this repo

git clone https://github.com/ahmednooor/lino.git

2. Go into the cloned repo directory

cd ./lino/

3. Build & run with Cargo

cargo run <optional-filename>

On Linux (Debian based), if you head into problems, try installing the following libraries and re-run with cargo.

sudo apt install xorg-dev libxcb-present-dev libxcb-composite0-dev libxcb-shape0-dev libxcb-xfixes0-dev

If you get an error about something like couldn't link with cc, try installing the following.

sudo apt install gcc gcc-multilib binutils

NOTE: If you are unsure about above mentioned Linux libraries, do it on a dev system or a vm instead of your daily driver.

Rust Dependencies

A big Thanks to the authors/maintainers/contributors of these libraries.

Motivation

Imagine you're a mortal who is accustomed to VS Code or some other GUI Text Editor/IDE, and suddenly you have to login to some SSH or fire up a Linux Server Distro with no GUI. You find yourself treading in the territory of the gods where beasts like Vim, Emacs and others like them reside. You find a friend called Nano, but it doesn't speak your tongue (i.e. key bindings), so you waste your time trying to learn a new way to communicate instead of getting the job done and get the hell out of there. This editor can be your friend that speaks the same-ish tongue and you can take it there with you. It isn't the only one though, there is another one called Micro.

Dependencies

~5.5MB
~107K SLoC