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"]
[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!

  • LalSalaamComrade@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    6 months ago

    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.

    • Ramin Honary@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      6 months ago

      It’s a i3-6006U with just 4.0GiB of RAM.

      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.

      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.

      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 the elisp-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.