Skip to content

TheRohans/qi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qi

.github/workflows/c-cpp.yml

          _ 
         (_)
   __ _   _ 
  / _` | | |
 | (_| | | |
  \__, | |_|
     | |    
     |_|    

Qi's goal is to be my perfect editor. It attempts to combine the things I like about emacs with the speed and system integration of vi. Qi focuses on the following goals:

  • Small foot print (~350K full feature, ~100K tiny build)
  • Speed
  • Large file editing
  • Terminal editor (no x11, etc)
  • Emacs bindings and usage emulation (chords, minibuffer, modes, etc)
  • Compiles to a single, self contained binary
  • Cross platform (posix based systems)
  • Multi-language (human) support - with a focus on English, French and Chinese.
  • Multi-language (computer) support
    • C
    • Golang
    • Makefile
    • Markdown
    • HTML (XML)
    • Typescript
    • Python
    • YAML / Terraform
    • Lua
  • UTF-8 encoding
  • Hex editing

Qi was originally forked from QEmacs 3.2. Qi has been heavily modified from QEmacs, and it is not backwards compatible with QEmacs.

Demo

Qi Demo Video

Documentation / Manual

Read the Manual

Building

Qi should build on any POSIX system. It is currently being run daily on:

  • Ubuntu 20.04
  • M1 Macs
  • Raspberry Pi 1
  • FreeBSD 13 (Beta: only working from within Xorg)

Quick Start

./configure
make dist
sudo make install

If you leave off the make install step, you should have a qi binary in the dist directory.

Slower Start

You can see the possible options by typing

./configure --help

If you --enable-tiny you will get a very small build with almost all of qi's extra features not included. For example, there will be no syntax highlighting, no file browser, and no beta features. Depending on your system, the size of the editor should be down in the 100K range.

--prefix can be used to install qi somewhere that doesn't require admin access, and --cc can be used to specify a different compiler.

Do you feel lucky? Well, --enable-beta might be for you. This will turn on features that are currently under development which could be cool or could crash everything.

Example of custom build:

./configure --cc=clang --prefix=~/ --enable-beta
make dist
make install

Quick Start (Developer)

Using --enable-debug will build qi with debugging symbols enabled, and it also activates a macro that does some logging (see the manual for more information).

Licensing

QEmacs was released under the GNU Lesser General Public License v2 (read the accompanying LICENSE file) so Qi is as well.

  • Qi is Copyright 2013 The Rohans
  • QEmacs is Copyright 2002 Fabrice Bellard.