cross-posted from: https://lemmy.ml/post/15059157
cross-posted from: https://lemmy.ml/post/15059150
Hey friends,
I tried Kakoune for the first time recently—I definitely feel like it gets keybindings right. So I just wrapped up configuring Helix to (as far as I can tell) use those bindings (basically, it totally cuts out select mode and makes things much faster). Thought I’d share for anyone else interested.
[keys.normal] H = "extend_char_left" J = "extend_line_down" K = "extend_line_up" L = "extend_char_right" W = "extend_next_word_start" E = "extend_next_word_end" B = "extend_prev_word_start" A-j = "join_selections" A-n = "search_prev" N = "extend_search_next" A-N = "extend_search_prev" [keys.normal.g] e = ["goto_last_line", "goto_line_end"] G = ["select_mode", "goto_file_start", "normal_mode"] [keys.normal.G] H = "extend_to_line_start" L = "extend_to_line_end" E = ["select_mode", "goto_last_line", "goto_line_end", "normal_mode"] [keys.normal.v] t = "align_view_top" b = "align_view_bottom" v = "align_view_center"
Happy editing!
I wish Kakoune was somewhat popular. I would love to start working on a similar project using Guile integration, but I really suck at reading source code.
Steps are being made toward Guile Emacs integration. The work is mostly being done by Robin Templeton, who (last I heard) works at the Spritely Institute. And as I understand, there are other people pushing on the Guile in Emacs front as well, so you may not have to wait long.
Have you considered trying to setup Kakoune bindings in Emacs? For example like this: https://github.com/jmorag/kakoune.el
Thank you for sharing this. I’ve never tried using Emacs before - since I’m on a very low-end laptop, I am curious if it would hurt the performance on my device? It’s a i3-6006U with just 4.0GiB of RAM. Also, Guile Emacs and Guilemacs are two different projects, right? Because I also happen to come across this, and I’ve been interested in this project as well.
Emacs is considerably more lightweight than a modern Web browser, or any app based on Electron.js (e.g. VSCode) so a computer with those specs is more than powerful enough to run Emacs. If you use version 29.1 or later, Emacs comes with “
libgccgit
” which will spend a little time pre-compiling Emacs code to very fast native code.Emacs used to have a reputation for being slow back in the early 1990s when 32 bit personal computers were just beginning to gain popularity. But nowadays when everyone downloads FlatPak and AppImage and Snap apps which install many hundreds of megabytes of code, Emacs is relatively small and light.
The whole history of Guile and Emacs is here on the Emacs Wiki.
So there are a few projects related to Guile and Emacs. The link you provided me by Ken Raeburn is a fork of older versions of both Guile and Emacs, it seems it has not been worked on in about 20 years, unfortunately.
The project by Robin Templeton is also a little bit out of date, but still somewhat actively developed. You must build it from source from a patched version of (I think?) Emacs 26 or 27, I am not sure which it was. It works by loading
libguile
(the Guile interpreter/compiler) into Emacs so you can run Scheme code, and it also provides Scheme “foreign function” wrappers to the Emacs C APIs so you can do everything Emacs Lisp does in Scheme by importing theelisp-functions
Scheme module. (There is an example of how to use it on the Emacs Wiki.)I did hear Robin say in a recent Spritely chat that it could be made to work on Emacs 29 with not too much effort, they just haven’t had time to do it.
If you are interested in Scheme, you might also want to check out the Edwin text editor which is built-in to the MIT/GNU Scheme compiler, you launch it from the Scheme REPL with the
(edit)
function. It is a clone of Emacs 19 (a very old Emacs) written entirely in Scheme, but unfortunately it is a little too old to be useful nowadays, in my opinion. Still, you could learn something by reading the Edwin source code.Finally there is TeXmacs, which is a full WYSIWYG application with a built-in LaTeX rendering engine designed for writing scientific papers, and it includes the Guile Scheme compiler for writing extensions, although I would not call TeXmacs a general purpose programming text editor the way Emacs is.