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 + F | Find | | 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 sh cargo install lino

2. Run sh 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 sh git clone https://github.com/ahmednooor/lino.git 2. Go into the cloned repo directory sh cd ./lino/ 3. Build & run with Cargo sh cargo run <optional-filename>

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

sh 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.

sh 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

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.