Xah Emacs Blog

Tips & Tricks for emacs and emacs lisp.

starting a dedicated keyboard blog. See

Xah keyboard Blog

Subscribe there. I'll not duplicate keyboard stuff here. Thanks.

mouse use in emacs, reddit


the following pages are updated.

Emacs: How to Set Mouse Buttons (updated)

Emacs: Add Web Browser Back Key/Button to Info mode

Emacs: View Info Page. New, on its own page.

Mouse Buying Guide

Kite, a New Era in Coding

check out, a new editor tool.

Kite - Your programming copilot

It signifies a new era in coding, where, instead manually searching stackoverflow etc to help code, the tool auto displays docs and code examples etc as you type. It's like name completion to the next level.

I helped develop the emacs plugin. 😸

Check out the site at https://kite.com/

Emacs Lisp: Traverse Directory

Emacs: What's Hook? (on its own page)

see also Emacs: How to Bind Keys for Major Mode?

see also Emacs: Avoid Lambda in Hook

List of Emacs Lisp Variables

List of Emacs Hooks

the supremum of keybinding

recently had to work on a Mac laptop. So, that forced many improvements to xah fly keys. Now, it works on laptop out of the box. Emacs: Xah Fly Keys

you should use xah-fly-keys or ergoemacs-mode http://ergoemacs.github.io/ Matt's been working on ergoemacs-mode all this time. If you have a issue, post on github, he responds and fixes usually within a day.

There are many other emacs packages of alt keybinding. If efficiency is the judge, none comes close to xah-fly-keys. Actually, unless there's a system of steno based keybinding, there's none as efficient as xah-fly-keys in human history.

Arrow Keys Layout Efficiency: vi's HJKL vs Inverted-T IJKL (major new discovery. vi is worse!)

Keyboard Layout, Is Inverted Number Row Better? (updated, with graph)

Emacs: Jump to Previous Position

now there's show random link button at Practical Emacs and Practical Emacs Lisp. Enjoy.

Emacs: Xah Fly Keys

major key change. Now, when in command mode, letter i switches to insert mode, and Space key is leader key for all emacs's commands with keys that starts with 【Ctrl+x】.

Now, you no longer need a ▤ Menu key, and now is compatible with any laptop out of the box.

Using magit-status each time or having to type the commands was boring.

So I made a keymap, I tried many solutions, the best one comes from Xah on ErgoEmacs.

from https://www.bjonnh.net/post/20160303_EmacsMagitKeymap/

yay. Thanks to Bjonnh.

List of Keylogging Software

Emacs Cursor Movement Keys Controversy

Stefan Monnier, previous emacs maintainer, doesn't use the {Ctrl+n, Ctrl+p, Ctrl+f, Ctrl+b} keys. See https://lists.gnu.org/archive/html/emacs-devel/2016-03/msg00545.html

by the way, he doesn't touch type neither, nor does Richard Stallman.

the thread began here Why does the tutorial talk about C-n/C-p etc? https://lists.gnu.org/archive/html/emacs-devel/2016-03/msg00402.html

i think the emacs cursor keys should be banished. They are very inefficient. One of the worst keybinding choices. I think they are not much better than random choice of keys as far as design goes.

suppose you are playing pacman. Do you want to use the arrow keys or the {Ctrl+n, Ctrl+p, Ctrl+f, Ctrl+b}? There, is an aspect of efficiency.

People mention about how hands stay on home row. Better is inverted T or vim hjkl. 〔➤see Arrow Keys Layout Efficiency: vi's {H J K L} vs Inverted T {I J K L}

but why people are loud on emacs keys? because:

HABIT is the core of your perception, your judgement, of the external world.

it's not just your muscle memory. But, the wires in your brain.

HABIT, as i learned over the years, plays a role in human life not just in petty software keyboard use, but also User Interface design, in programing practices (functional programing?), programing language perception, … no. Actually, habit is the railroad of behavior, HABIT is this elementary epic particle in human history, culture, political divide, evolution, and human destination. ❕

see also

Emacs Lisp: Exit Loop/Function, catch/throw (updated to include a example for exiting a function)

the first step to learn clojure is Leiningen, and it can be quite confusing for beginners. Here's help to get you started. Clojure Leiningen Tutorial

PS am revamping my draft clojure tutorial.

Emacs Bug Crushing with John Wiegley, San Francisco

emacs meetup in San Francisco. Mark your Calendar. 6:00 PM to 9:00 PM


emacs: insert a literal tab, literal newline


Emacs: Find & Replace Tutorial

in emacs 25.1, saveplace is obsolete. For detail, see updated at Emacs: Save Cursor Position

see also How to Set Emacs's User Interface

download emacs 25: http://alpha.gnu.org/gnu/emacs/pretest/emacs-25.0.90.tar.xz

you need to compile it. See How to Build Emacs on Linux

Emacs: Select Line, Block, in Quote, Extend Selection (minor update)

emacs magit tip. press C-u S to stage also untracked files.

see also Emacs: magit-mode Tutorial

emacs lisp toothpick syndrome emacs 24.5 reftex-vars.el
Emacs Lisp Toothpick Syndrome

new emacs tutorial is out. Major update since past 2 months is addition of navigation sidebar, for emacs and elisp pages. The updated version will be sent out to supporters this weekend.

Buy, retweet. Thanks. Buy Xah Emacs Tutorial

Emacs: Byte Compile Elisp Files (updated)

Emacs: Find/Replace in Pure Elisp xah-find.el (added a regex find/replace screenshot)

i do regex find/replace on 5 thousand html files every week, for the past decade. The above, is the best method.

Emacs Lisp: Run Current File (updated, to include golang)

emacs lisp pages now have navigation side panel. See Practical Emacs Lisp

tutorial page navigation sidebar

now the tutorial has side panel for easy navigation. See Practical Emacs

Elfeed Not Support Xhtml? here's a test

if this content shows, then it means, i must use the CDATA thing and it doesn't support xhtml.

Update: yes, elfeed now fixed it! fixed on , see https://github.com/skeeto/elfeed/issues/112

by the way, elfeed is a RSS/Atom feed reader, for emacs, written in elisp. It's excellent. https://github.com/skeeto/elfeed, also on MELPA.

by the way, reddit is also switching to atom. https://www.reddit.com/r/changelog/comments/428vdq/upcoming_reddit_change_switching_from_rss_20_to/

if your blog is using RSS, you should switch to Atom, because RSS is garbage, by Dave Winer. (i think Dave Winer is one of those guys in computing industry i regard is charlatan, but i haven't ascertained my own opinion yet. (charlatan, y'know? like, those selling you snake oil, the gurus, they spread gospels and people buy it. In fact, typically a lot followers. Larry Wall, Martin Fowler, are prime examples. Typically, these guys, their golden touch, is never technical (say, a math theorem), such as say Knuth. But, they rely heavily on social things. It is via social, they get their kicks. In particular, their weapon of choice is fuzzy and cozy and mythical jargons, Unix Philosophy, KISS, defensive programing! (remember that?)! laziness is virtue of programer! (remember that?) Design Patterns! eXtreme Programing, Agile, SCRUM! Idioms! Pythonic!)) (disclaimer: this is all opinion only.)

see also Voodoo of Software Engineering

JavaScript in Depth

News for my JavaScript tutorial. Now, it has side panel for easy navigation.

JavaScript in Depth

JavaScript is now the most used language, depending on how you count, along with C, C++, Java.

If you never touched JavaScript, check it out. If you code JavaScript, you might learn a few things too, from a very differet perspective.

Of existing professionally published JavaScript books out there, i think mine is competitive in depth, in accuracy, in readability. 〔➤see JavaScript Books Review

Emacs Lisp: Get User Input (updated)

how to open a info file

Emacs: View Info Page

this is useful when you have a 3rd party package that has info doc.

superior method to insert any type of bracket/quote by pair

on reddit, someone asked a question about inserting curly quotes and brackets in pairs.

Here's my explanation, i believe this is superior to any. https://www.reddit.com/r/emacs/comments/41i156/using_smartquotes_with_the_electric_pair_mode/cz2ro2s


Emacs: How to Install Packages Using ELPA, MELPA (minor update)

Emacs: Auto Save

Paul Graham programming 2007
Hacker News founder, Common Lisp expert Paul Graham, using the Natural 4000 Keyboard, 2007. 〔Photo by Gabor Cselle. Source: https://www.flickr.com/photos/86921622@N00/1162779139 ©

see also Microsoft Natural Ergonomic Keyboard 4000 Review

Disable Ubuntu New/Overlay Scrollbar

Emacs Lisp: Insert Random Number / Hexadecimal (updated)

Which Lisp Should You Learn? (old article. repost)

Emacs Lisp: Regex Patterns and Syntax Table

is it worthwhile to use abbrevs for most used English words?

Emacs Abbrev for Most Used English Words?

Which Mouse to Get for Emacs

someone asked about which mouse to get for emacs

most gaming mouse have onboard memory, such that you set the buttons once, then plug in any computer it'll work. The software is usually Windows only, so you need a windows machine. (or, a virtual box might work)

but if you really want a mouse with linux api, i hear that ROCCAT mouse is famous for that.

roccat has many models. This one i think is physically/functionally best. ROCCAT Tyon Mouse

other models are ROCCAT Gaming Mouse with Linux Support

but i've not used them.

myself recommend plain logitech. I recommend any of the following, up to your preference in size, number of buttons, and whether it has spin wheel.

most mouses, as long as they are standard usb devices, one can also program the various buttons in X11 without the mouse itself providing means, but it's a huge hassel. One'll spend weeks and weeks reading the many many half-written how-tos.

also, a warning. Some gaming mouse REQUIRES installing and registering their “cloud” software for every computer you use the mouse in order for the button config to be remembered. Notably Razer Orbweaver Keypad. So, i generally stay away from anything Razer.

new Common Lisp book: 〈Common Lisp Recipes〉

Common Lisp Recipes: A Problem-Solution Approach By Edmund Weitz. @ amazon

wow, a new Common Lisp book. A Chinese friend, Chun Tian (binghe) https://twitter.com/binghe_lisp, who i regard as one of the top Common Lisp expert, highly regarded the book.

KBC Poker 3 Keyboard. Now, this one, is for programers. It features physical key activated programing. So, you just press keys to start record key macros. No need for software!

Atreus62 Keyboard ⌨

for keyboard hackers, someone custom build a Atreus keyboard by fixing one of its problem of too few keys. The result is beautiful. See updated: Atreus Keyboard ⌨ (refresh page)

Past Articles by Date


Like it? Buy Xah Emacs Tutorial. Thanks.