All Projects → magiblot → Turbo

magiblot / Turbo

Licence: other
An experimental text editor based on Scintilla and Turbo Vision.

Programming Languages

cpp
1120 projects
cpp17
186 projects

Projects that are alternatives of or similar to Turbo

Tvision
A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.
Stars: ✭ 612 (+684.62%)
Mutual labels:  terminal, tui, ncurses, utf-8
Nnn
n³ The unorthodox terminal file manager
Stars: ✭ 13,138 (+16743.59%)
Mutual labels:  terminal, ncurses, tui
Cursive
A Text User Interface library for the Rust programming language
Stars: ✭ 2,613 (+3250%)
Mutual labels:  terminal, tui, ncurses
Dte
A small, configurable console text editor (moved to https://gitlab.com/craigbarnes/dte)
Stars: ✭ 98 (+25.64%)
Mutual labels:  terminal, tui, ncurses
Neix
neix - a RSS/Atom feed reader for your terminal.
Stars: ✭ 128 (+64.1%)
Mutual labels:  terminal, tui, ncurses
Tuicss
Text-based user interface CSS library
Stars: ✭ 167 (+114.1%)
Mutual labels:  terminal, tui, ncurses
Mandown
man-page inspired Markdown viewer
Stars: ✭ 173 (+121.79%)
Mutual labels:  terminal, tui, ncurses
Goaccess
GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.
Stars: ✭ 14,096 (+17971.79%)
Mutual labels:  terminal, tui, ncurses
Termox
C++17 Terminal User Interface(TUI) Library.
Stars: ✭ 306 (+292.31%)
Mutual labels:  terminal, tui, ncurses
Htop
htop is an interactive text-mode process viewer for Unix systems. It aims to be a better 'top'.
Stars: ✭ 5,626 (+7112.82%)
Mutual labels:  terminal, tui
So
A terminal interface for Stack Overflow
Stars: ✭ 694 (+789.74%)
Mutual labels:  terminal, tui
Pacmixer
an alsamixer alike for PulseAudio.
Stars: ✭ 78 (+0%)
Mutual labels:  tui, ncurses
Tml
🌈💻🎨 A tiny markup language for terminal output. Makes formatting output in CLI apps easier!
Stars: ✭ 634 (+712.82%)
Mutual labels:  terminal, tui
Ltui
🍖 A cross-platform terminal ui library based on Lua
Stars: ✭ 624 (+700%)
Mutual labels:  terminal, tui
Ueberzug
ueberzug is a command line util which allows to display images in combination with X11
Stars: ✭ 711 (+811.54%)
Mutual labels:  terminal, tui
Devdash
🍱 Highly Configurable Terminal Dashboard for Developers and Creators
Stars: ✭ 939 (+1103.85%)
Mutual labels:  terminal, tui
C Sharp Console Gui Framework
A GUI framework for C# console applications
Stars: ✭ 838 (+974.36%)
Mutual labels:  terminal, tui
Sngrep
Ncurses SIP Messages flow viewer
Stars: ✭ 605 (+675.64%)
Mutual labels:  terminal, ncurses
Vim Quickui
The missing UI extensions for Vim 8.2 (and NeoVim 0.4) !! 😎
Stars: ✭ 714 (+815.38%)
Mutual labels:  terminal, tui
Tui
A text-based user interface library for golang based on termbox
Stars: ✭ 12 (-84.62%)
Mutual labels:  terminal, tui

Turbo

Turbo is an experimental text editor for the terminal, based on the Scintilla code editing component by Neil Hodgson and the Turbo Vision application framework.

It was created to demonstrate new features in Turbo Vision. In particular, it has served as testing ground for Turbo Vision's Unicode capabilities.

As a text editor, Turbo aims at being intuitive and easy to use. Usability and productivity are its two other major objectives, although it has not got that far yet. And only for being a Turbo Vision application, it offers a vintage look and feel.

Turbo

Building

First of all, you should clone this repository along its submodules with git clone --recursive.

Then, make sure the following dependencies are installed:

  • CMake.
  • A compiler supporting C++17.
  • libncursesw (note the 'w') (Unix only).

Additionally, you may also want to install these optional dependencies:

  • libmagic for better recognition of file types (Unix only).
  • libgpm for mouse support on the linux console (Linux only).

Turbo can be built with the following commands:

cmake . -DCMAKE_BUILD_TYPE=Release && # Or 'RelWithDebInfo', or 'MinSizeRel', or 'Debug'.
cmake --build .

The above will generate the turbo binary.

Detailed build instructions for Ubuntu 20.04
sudo apt update
sudo apt install cmake build-essential git libfmt-dev libmagic-dev libgpm-dev libncursesw5 libncursesw5-dev
git clone --recursive https://github.com/magiblot/turbo.git
cd turbo
cmake . -DCMAKE_BUILD_TYPE=Release
cmake --build . # Build Turbo.
sudo cp turbo /usr/local/bin/ # Install.
Detailed build instructions for Ubuntu 18.04
sudo apt update
sudo apt-get install libssl-dev gcc-8 g++-8 git libfmt-dev libmagic-dev libgpm-dev libncursesw5 libncursesw5-dev ncurses-dev build-essential

#build CMake 3.18.1
export CXX=g++-8
sudo apt remove --purge --auto-remove cmake
mkdir ~/temp && cd ~/temp
wget https://cmake.org/files/v3.18/cmake-3.18.1.tar.gz
tar -xzvf cmake-3.18.1.tar.gz
pushd cmake-3.18.1/
./bootstrap
make -j$(nproc)
sudo make install
popd
git clone --recursive https://github.com/magiblot/turbo.git
cd turbo
cmake . -DCMAKE_BUILD_TYPE=Release
cmake --build . # Build Turbo.
sudo cp turbo /usr/local/bin/ # Install.
turbo

Usage

As said earlier, Turbo has been designed to be intuitive. So you probably already know how to use it!

Some of the default keybindings are:

  • Ctrl+C/Ctrl+Ins: copy.
  • Ctrl+V/Shift+Ins: paste.
  • Ctrl+X/Shift+Del: cut.
  • Ctrl+Z, Ctrl+Y: undo/redo.
  • Tab, Shift+Tab: indent/unindent.
  • Ctrl+A: select all.
  • Shift+Arrow: extend selection.
  • Ctrl+F: find.
  • Ctrl+Back, Ctrl+Del: erase one word left/right.
  • Ctrl+Left, Ctrl+Right: move one word left/right.
  • Ctrl+Shift+Up, Ctrl+Shift+Down: move selected lines up/down.
  • Ctrl+N: create new document.
  • Ctrl+O: "open file" dialog.
  • Ctrl+S: save document.
  • Ctrl+W: close focused document.
  • F6, Shift+F6: next/previous document (sorted by MRU).
  • Alt+X: exit the application (I prefer this over Ctrl+Q as it is too close to Ctrl+A and Ctrl+W).

Additionally, the following key shortcuts are supported on the Linux console:

  • Ctrl+Shift+Z: redo.
  • Alt+Tab, Alt+Shift+Tab: next/previous document (sorted by MRU).
  • Shift+Enter: find previous (in the "find" text box).

Support for these key combinations may vary among terminal applications, but any issue on this should be reported to Turbo Vision instead.

Features

Scintilla has lots of features, of which Turbo only offers a few. Making more of them available is just a matter of time, so contributions are welcome.

Below is my TO-DO list of features I would like to implement in Turbo:

  • [x] Several files open at the same time.
  • [x] Line numbers.
  • [x] Word wrap.
  • [x] Suspend to shell.
  • [x] Unicode in documents (in particular, UTF-8).
  • [x] Double-width characters.
  • [x] Opening binary files without freaking out.
  • [x] List of open documents in MRU order.
  • [x] Tree view of open documents.
  • [x] Tree view sorted alphabetically.
  • [x] Case-insensitive search.
  • [x] Find as you type.
  • [ ] Replace.
  • [ ] Go to line.
  • [ ] List of recently opened files.
  • [x] Remove trailing whitespaces on save.
  • [x] Ensure newline at end of file.
  • [ ] Detect open files modified on disk.
  • [ ] Persistent configuration.
  • [ ] Keybinding customization.
  • [ ] Color scheme customization.
  • [x] Syntax highlighting for some languages (C/C++, Rust, Python, JavaScript, Make, Bash, Ruby).
  • [ ] Syntax highlighting for the rest of languages supported by Scintilla.
  • [x] Brace match highlighting.
  • [ ] VIM input mode.
  • [ ] Localization.
  • [x] Unicode in dialog text boxes (this depends on Turbo Vision).
  • [ ] True Color support (this depends on Turbo Vision).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].