A Fork of QEmacs that hacks a native Vim/Neovim inspired modal state machine directly into it
  • C 94.9%
  • Shell 1.4%
  • Python 1.1%
  • C++ 0.9%
  • Makefile 0.6%
  • Other 1%
Find a file
Charlie Gordon ea7665dee9 New indenting commands
- rename `indent_size` window field as `indent_width` for consistency
- handle negative argval in `do_tabulate`
- fix reverse region in `indent-rigidly`
- only indent lines that start in the region, ie: lines whose beginning
  offset >= start and < end
- fix `do_backspace` to delete a TAB worth of white space after TAB.
  no longer use `undo` for this.
- fix `find_window` to locate window according to top-left corner of current
- add `unindent-region` on `M-C-|` to unindent current region
- add `unindent-buffer`
- redirect `S-RET` and `S-DEL` to their unshifted versions
- rename `c-indent-command` command as `c-indent-line-or-region`
2024-10-11 09:14:16 +02:00
.github/workflows Improve documentation, configure and CI(#31) 2024-05-20 19:43:01 +02:00
cp Update mapping tables 2020-11-07 17:51:16 +01:00
fonts Initial revision 2004-05-29 10:17:37 +00:00
kmap added remove_slash and append_slash path utilities 2008-01-03 09:51:29 +00:00
lang New indenting commands 2024-10-11 09:14:16 +02:00
libqhtml Improve memory allocation APIs 2024-08-31 13:49:00 +02:00
modes fix dired invoked from an actual file: enumerate file directory 2024-10-11 09:14:16 +02:00
plugins Pass QEmacsState pointer to all module_init and module_exit functions (#24) 2024-05-19 19:15:08 +02:00
tests Fixed color handling 2024-09-08 01:06:17 +02:00
tools Improve documentation 2024-08-31 13:49:00 +02:00
.gitignore Use char32_t for all code point variables and arrays 2022-10-29 19:43:38 +02:00
arabic.c Change license to MIT 2023-03-05 02:04:02 +01:00
buffer.c Make trace flags more generic 2024-10-11 09:14:16 +02:00
cfb.c Change license to MIT 2023-03-05 02:04:02 +01:00
cfb.h Change license to MIT 2023-03-05 02:04:02 +01:00
charset.c Pass QEmacsState pointer to all module_init and module_exit functions (#24) 2024-05-19 19:15:08 +02:00
charset.h Pass QEmacsState pointer to all module_init and module_exit functions (#24) 2024-05-19 19:15:08 +02:00
charsetjis.c Pass QEmacsState pointer to all module_init and module_exit functions (#24) 2024-05-19 19:15:08 +02:00
charsetjis.def Improve completion system 2020-10-27 08:38:12 +01:00
charsetmore.c Pass QEmacsState pointer to all module_init and module_exit functions (#24) 2024-05-19 19:15:08 +02:00
color.c Miscellaneous improvements 2024-09-25 01:02:14 +02:00
color.h Fixed color handling 2024-09-08 01:06:17 +02:00
config.eg Initial post on github 2020-10-24 23:59:54 +02:00
configure Atari port fixes (#35) 2024-07-28 00:04:20 +02:00
cutils.c Add utility functions 2024-08-31 13:49:00 +02:00
cutils.h Add utility functions 2024-08-31 13:49:00 +02:00
display.c Add support for suspending qemacs 2024-09-25 01:02:14 +02:00
display.h Add support for suspending qemacs 2024-09-25 01:02:14 +02:00
extras.c New indenting commands 2024-10-11 09:14:16 +02:00
fbfrender.c Change license to MIT 2023-03-05 02:04:02 +01:00
fbfrender.h Change license to MIT 2023-03-05 02:04:02 +01:00
haiku.cpp Add support for suspending qemacs 2024-09-25 01:02:14 +02:00
html2png.c Add support for suspending qemacs 2024-09-25 01:02:14 +02:00
indic.c Change license to MIT 2023-03-05 02:04:02 +01:00
input.c Add missing initializers 2024-09-08 01:55:38 +02:00
kmap.c Change license to MIT 2023-03-05 02:04:02 +01:00
kmaps added more Hebrew keymaps 2007-12-09 23:31:38 +00:00
libfbf.c Change license to MIT 2023-03-05 02:04:02 +01:00
libfbf.h Change license to MIT 2023-03-05 02:04:02 +01:00
libregexp-opcode.h Add regex support for search and replace 2023-03-05 13:34:19 +01:00
libregexp.c Fix clang compiler warnings 2024-02-10 20:29:26 +01:00
libregexp.h Add regex support for search and replace 2023-03-05 13:34:19 +01:00
libunicode-table.h Add regex support for search and replace 2023-03-05 13:34:19 +01:00
libunicode.c Fix linux compilation problems 2023-03-05 14:36:44 +01:00
libunicode.h Add regex support for search and replace 2023-03-05 13:34:19 +01:00
LICENSE Change license to MIT 2023-03-05 02:04:02 +01:00
ligatures Add charset probing functions 2014-03-01 22:37:26 +00:00
Makefile Add syntax mode for nanorc files 2024-08-31 13:49:00 +02:00
qe-doc.html Default to is_player mode: qe starts dired when invoked with no arguments 2022-08-28 00:40:58 +02:00
qe-doc.texi Default to is_player mode: qe starts dired when invoked with no arguments 2022-08-28 00:40:58 +02:00
qe-manual.c Improve documentation, configure and CI(#31) 2024-05-20 19:43:01 +02:00
qe-manual.md Add paragraph and sentence commands 2024-08-31 13:49:00 +02:00
qe.1 Initial revision 2004-05-29 10:17:37 +00:00
qe.c New indenting commands 2024-10-11 09:14:16 +02:00
qe.h New indenting commands 2024-10-11 09:14:16 +02:00
qe.tcc Initial revision 2004-05-29 10:17:37 +00:00
qemacs.rdef haiku: add qemacs.rdef icon 2017-03-28 20:11:55 +00:00
qemacs.spec fixed typos, comments 2006-12-09 19:02:07 +00:00
qescript.c New indenting commands 2024-10-11 09:14:16 +02:00
qestyles.h Various improvements 2022-09-19 15:16:59 +02:00
README.md Improve documentation, configure and CI(#31) 2024-05-20 19:43:01 +02:00
search.c Miscellaneous improvements 2024-09-25 01:02:14 +02:00
TODO.md more ideas 2024-10-11 09:14:16 +02:00
tqe.c Default to is_player mode: qe starts dired when invoked with no arguments 2022-08-28 00:40:58 +02:00
tty.c New indenting commands 2024-10-11 09:14:16 +02:00
unicode_join.c Fix clang compiler warnings 2024-02-10 20:29:26 +01:00
unicode_join.h Update copyrights 2024-07-28 00:00:03 +02:00
unifont.lig Initial revision 2004-05-29 10:17:37 +00:00
unix.c Update copyrights 2024-07-28 00:00:03 +02:00
util.c Add xterm clipbord support 2024-10-11 09:14:16 +02:00
util.h Add xterm clipbord support 2024-10-11 09:14:16 +02:00
variables.c New indenting commands 2024-10-11 09:14:16 +02:00
variables.h Update copyrights 2024-07-28 00:00:03 +02:00
VERSION Add support for suspending qemacs 2024-09-25 01:02:14 +02:00
wcwidth.c Update glyph width methodology 2022-09-27 22:30:05 +02:00
wcwidth.h add include guard in wcwidth.h 2022-09-27 22:38:29 +02:00
win32.c Add support for suspending qemacs 2024-09-25 01:02:14 +02:00
x11.c Add support for suspending qemacs 2024-09-25 01:02:14 +02:00

Quick Emacs (QEmacs)

Welcome to QEmacs! A small but powerful UNIX editor with many features that even big editors lack.

Quick Description

QEmacs is a small text editor targeted at embedded systems or debugging. Although it is very small, it has some very interesting features that even big editors lack:

  • Full screen editor with an Emacs look and feel with all common Emacs features: multi-buffer, multi-window, command mode, universal argument, keyboard macros, config file with C-like syntax, minibuffer with completion and history.

  • Can edit huge files (hundreds of megabytes) without delay, using a highly optimized internal representation and memory mapping for large files.

  • Full Unicode support, including multi charset handling (8859-x, UTF8, SJIS, EUC-JP, ...) and bidirectional editing respecting the Unicode bidi algorithm. Arabic and Indic scripts handling (in progress). Automatic end of line detection.

  • C mode: coloring with immediate update, auto-indent, automatic tags.

  • Shell mode: full color VT100 terminal emulation so your shell works exactly as you expect. Compile mode with colorized error messages, automatic error message parser jumps to next/previous error, works with grep too. The shell buffer is a fully functional terminal: you can run qemacs, vim or even emacs recursively!

  • Input methods for most languages, including Chinese (input methods descriptions come from the Yudit editor).

  • Binary and hexadecimal in place editing mode with insertion and block commands. Unicode hexa editing of UTF-8 files also supported. Can patch binary files, preserving every byte outside the modified areas.

  • Works on any VT100 terminal without termcap. UTF-8 VT100 support included with double width glyphs.

  • X11 support. Supports multiple proportional fonts at the same time (like XEmacs). X Input methods supported. Xft extension supported for anti-aliased font display.

  • Bitmap images are displayed on graphics displays and as ASCII colored text on text terminals, which is handy when browsing files over an ssh connection. (QEmacs uses the public domain stb_image package for image parsing.

Building QEmacs

  • Launch the custom configuration script ./configure. You can list the available options by typing ./configure --help.

  • Type make to compile qemacs and its associated tools.

  • Type make install as root to install it in /usr/local.

QEmacs Documentation

Read the file qe-doc.html.

Licensing

QEmacs is released under the MIT license. (read the accompanying LICENCE file).

Contributing to QEmacs

Please contact the qemacs-devel mailing list.

Authors

QEmacs was started in 2000. The initial version was developped by Fabrice Bellard and Charlie Gordon, who since then, has been maintaining and extending it.