Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    X

    Xah Lee

    ergoemacs.org · Personal blog · on HN since 2010

    Xah Lee writes tutorials and opinions on Emacs, Emacs Lisp, keyboard ergonomics, and avoiding repetitive strain injury.

    Visit blogHN submissions
    Open Source & LinuxProductivityHealth
    What HN says

    HN commenters link it in Emacs and RSI discussions, citing pages on the Emacs pinky, keyboard choice, and ASCII diagrams.

    Stats for nerds
    73HN people shared it
    33linked in comments
    1.2Kstory points
    Jun 2021last shared
    2011people per year2021

    Top posts on HN

    1. 1
      Using Voice to Code Faster than Keyboard
      7 people · 405 points · first shared 2013 · 133 comments on HN
    2. 2
      I'm About as Good as Dead: The End of Xah Lee
      1 person · 363 points · first shared 2014 · 301 comments on HN
    3. 3
      Practical Emacs Lisp
      4 people · 175 points · first shared 2012 · 56 comments on HN
    4. 4
      Emacs Modernization: Simple Changes Emacs Should Adopt (2006)
      2 people · 113 points · first shared 2015 · 169 comments on HN
    5. 5
      How to avoid the Emacs Pinky problem
      11 people · 45 points · first shared 2013 · 49 comments on HN
    6. 6
      Why Emacs keys are painful (2007)
      4 people · 37 points · first shared 2018 · 29 comments on HN
    7. 7
      Lisp-1 vs. Lisp-2 (2008)
      2 people · 15 points · first shared 2021 · 1 comments on HN
    8. 8
      Emacs: Abbrev Mode Tutorial
      1 person · 14 points · first shared 2019 · 2 comments on HN
    9. 9
      Emacs: Why You Should Not Swap CapsLock and Control
      4 people · 11 points · first shared 2015 · 1 comments on HN
    10. 10
      ErgoEmacs
      3 people · 5 points · first shared 2010 · 2 comments on HN

    What HN people wrote when they linked it

    • emmanueloga_Nov 2018

      I believe a more appropriate noun is "contempt" :-)

      I found this page [1] some time ago, maybe someone can find some good quotes in here but the page is kind of long and heavy and not super quotable, maybe some of you will find some gems in there.

      Top of the page is Xah Lee, a lovable, and sometimes a bit weird, cranky master of contempt:

      > The basis of computer languages' merit lies in their mathematical properties.
      > It is this metric, that we should use as a guide for direction.
      > As an analogy, we measure the quality of a hammer by scientific principles:
      > ergonomics, material (weight, hardness. . .), construction, statistical
      > analysis of accidents/productivity/… …etc., not by vogue or lore.
      > If we go by feelings and preferences, hammer's future will deviate
      > and perhaps become dildos or maces. (Xah Lee in comp.lang.lisp, July 2000)

      I think Xah is cranky but many times on to something. For instance, point 6 in his list of "Python Doc Idiocies" [2] is hard to disagree with :-).

      1: http://www.schnada.de/quotes/contempt.html

      2: http://xahlee.info/python/python_doc_index.html

      P.S.: if you enjoy Xah's writing you should pay for his excellent emacs manual [3]. It is actually openly available but he accepts contributions.

      3: http://ergoemacs.org/emacs/buy_xah_emacs_tutorial.html

      UPDATE: he actually has a Patreon account too! [4]

      4: https://www.patreon.com/xahlee

    • brudgersJul 2017

      For me, it's been keyboards with ctl and alt on both sides. Thanks to Xah Lee [1]. This rules out Macbooks (and most laptops) and favors Thinkpads, though currently I have a Dell Precision laptop and it has ctl and alt on both sides but the ctl's are not symmetrically placed and it is a bit annoying and not as good as the Thinkpad it replaced but it is workable.

      On my desktop, I have a Microsoft Natural Ergonomic 4000, which is an awesome keyboard and cheap and robust. The major compromise is that it is corded to USB, but for me it is worth it.

      That said, it takes practice to develop muscle memory to use both ctl keys and both alts and key bindings that require switching ctl keys to touch type feel strange.

      [1]: http://ergoemacs.org/emacs/emacs_pinky.html

    • pcr910303Aug 2019

      > Consider the poor quality of the existing js modes for 26.x, any idea why this depends on a future version of Emacs instead of current versions?

      You might as well look at the thread js2-mode was revoked[0] and ergoemacs' article[1].

      > Alternatively, could somebody convince the author of the railwaycat port (Emacs with better macOS integration) to get a version 27 out soon?

      Er... I would like to point out that it's not 'railwaycat' port but more of Mitsuharu Yamamoto's port[2], and AFAIK he has claimed that he has no interest in maintaing an emacs27 version.

      [0] https://lists.gnu.org/archive/html/emacs-devel/2009-08/msg00409.html
      [1] http://ergoemacs.org/misc/emacs_javascript_mode_war.html
      [2] https://bitbucket.org/mituharu/emacs-mac

    • tom_Jan 2019

      For Ctrl, I recommend pressing it with the knuckle of your little finger. There's a photo of the technique here, about halfway down: http://ergoemacs.org/emacs/emacs_pinky.html

      The main advantage of this over rebinding Caps Lock: it keeps the meta keys symmetrical, so you don't have to faff about rebinding Enter, or wonder about how you're going to solve the issue of hitting Ctrl with your right hand.

      (Lee recommends not doing this, citing unspecified issues with the little finger. For whatever it's worth, probably not much in the face of that kind of argument, I've been doing this for about ten years now and haven't noticed any problems. I'm afraid you're just going to have to make your own decision here.)

    • stiffOct 2018

      To write code that performs decently in Emacs-Lisp, you have to work with buffer contents rather than substrings, and it is just another frustration, the primitives for working with buffer contents are low level and heavily stateful, you end up writing imperative code that looks a lot like pascal or whatever, while loops conditioned on regexp searches, tons of setq's, moving point and mark around etc. It isn't a convenient way of programmatically modifying text. The basic examples of doing search and replace described here:

      http://ergoemacs.org/emacs/elisp_find_replace_text.html

      give a flavour of this (and of not having keyword arguments, of libary functions relying on global variables, ...).

    • pdkl95Mar 2018

      https://en.wikipedia.org/wiki/Space-cadet_keyboard

      Also, if you have a 104/105 key keyboard with "windows" and "menu" keys, you do& have a keyboard with four modifier keys. From my .Xmodmap file:

      clear Mod1
      clear Mod3
      clear Mod4
      clear Mod5

      ! left alt -> Meta
      keycode 64 = Meta_L
      add Mod1 = Meta_L

      ! right alt -> Alt
      keycode 108 = Alt_R
      add Mod4 = Alt_R

      ! left windows -> Super
      keycode 133 = Super_L
      add Mod3 = Super_L

      ! right windows -> Hyper
      keycode 134 = Hyper_R
      add Mod5 = Hyper_R

      Emacs uses all four automatically, as M- A- s- H- respectively. (alternatively, see: http://ergoemacs.org/emacs/emacs_hyper_super_keys.html )

    Related

    Chris Wellonsnullprogram.com295 people

    Why Aren't There C Conferences?

    Chris Wellons
    Personal · last shared 2026
    Mastering Emacsmasteringemacs.org141 people

    What’s new in Emacs 28.1?

    Mastering Emacs
    Personal · last shared 2026
    Brown PLT Blogblog.brownplt.org33 people

    Teaching the Essentials of Garbage Collection

    Brown PLT Blog
    Company · last shared 2026
    Howard Abramshowardism.org53 people

    Emacs Is My New Window Manager

    Howard Abrams
    Personal · last shared 2026
    Sacha Chuasachachua.com95 people

    EmacsConf 2024 Notes

    Sacha Chua
    Personal · last shared 2026
    Oils Blogoilshell.org156 people

    Kubernetes is our generation's Multics

    Oils Blog
    Company · last shared 2026
    Phil Hagelbergtechnomancy.us59 people

    Atreus – kit to build your own mechanical keyboard

    Phil Hagelberg
    Personal · last shared 2025
    Existential Typeexistentialtype.wordpress.com157 people

    Haskell Is Exceptionally Unsafe (2012)

    Existential Type
    Personal · last shared 2026