zem
zem copied to clipboard
Extensible Emacs-like text editor with Guile
- ZEM Extensible Emacs-like text editor with GNU Guile Scheme.
#+HTML:
** Features
- Emacs-like editing: ZEM uses [[https://savannah.nongnu.org/projects/emacsy][Emacsy]] to provide an Emacsy feel (keymaps, minibuffer with completion, major & minor modes, etc.). Default key bindings are the same as vanilla Emacs (e.g. ~C-x C-f~ for ~find-file~). For the complete list of supported commands, use ~M-x TAB~.
- Fully hackable and extensible with [[https://www.gnu.org/software/guile/][GNU Guile]]
- [[https://github.com/tree-sitter/tree-sitter][Tree-sitter]] based syntax highlighting (currently only C++ is supported)
** Installation *** Requirements
- GNU Guile 3.0+ (may support Guile 2.2 but not tested)
- CMake (>= 3.11)
- [[https://conan.io/][Conan]]
- [[https://tiswww.case.edu/php/chet/readline/rltop.html][GNU Readline]]
- [[https://www.freetype.org/][Freetype]]
*** Building Clone this repo first: #+BEGIN_SRC shell git clone https://github.com/Jimx-/zem.git cd zem git submodule update --init --recursive #+END_SRC
Build the editor with: #+BEGIN_SRC shell mkdir build conan install . --output-folder=build --build=missing --settings=build_type=Debug cd build ln -s ../data/monospace.ttf cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake make #+END_SRC
** Usage Under the ~build~ directory, run: #+BEGIN_SRC shell ../run.sh #+END_SRC
