#command-line #editor #terminal-text #notepad-like

app lino

A command line text editor with notepad like key bindings

29 releases (9 breaking)

0.10.0 Oct 22, 2021
0.9.2 Feb 17, 2021
0.8.2 Feb 5, 2021

#133 in Text editors

MIT license

340KB
4.5K SLoC


lino

A command line text editor with notepad like key bindings.

screenshot

Crates.io Crates.io Crates.io

Features

  • Notepad like keybindings.
  • Multi-line indentation.
  • Auto-indented new lines.
  • Line numbers.
  • Syntax highlighting.
  • Copy, Paste.
  • Undo, Redo.
  • Find, Replace.

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
Ctrl / Alt + Shift + , Ctrl + D Duplicate current line downward
Alt + ] / , Tab Increase indentation
Alt + [ / , Shift + Tab Decrease indentation
Enter Enter auto-indented new line
Ctrl / Shift + Enter Enter non-indented new line
Ctrl + F Find, Replace
Ctrl + X Cut
Ctrl + C Copy
Ctrl + V Paste
Ctrl + Z Undo
Ctrl + Y Redo
Ctrl + S Save
Alt + S Save as
Ctrl + Q , Ctrl + W Close

Some key-bindings might not work on different terminals. But the most common ones should work on all.

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>

3. Move binary to /usr/bin/ on Linux (Optional)

sudo mv `which lino` /usr/bin/

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 immortals where beasts like Vim, Emacs and others 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 (a better one) called Micro.

Dependencies

~8–19MB
~219K SLoC