Xah Emacs Blog Archive 2017-10

How to Write a Emacs Major Mode for Syntax Coloring (minor update)

removed use of global variables.

i was, using setq for temp variables.

was that way, because it's simpler for beginner to understand, instead of let*

but now, 10 years later, time's changed.

Emacs Command Frequency Statistics (repost)

remember, that linum mode makes your emacs super slow.

download emacs 26, and Alt+x global-display-line-numbers-mode

see Emacs: Show Line Numbers

for linux, download and compile it. Emacs: How to Build Emacs from git Repository

for MacOS, get emacs 26 beta at https://emacsformacosx.com/builds

also, whenever you upgrade emacs, you may need to recompile, or update, all your external packages.

[see Emacs: Install Package with ELPA/MELPA]

My Typing/RSI Experience (updated)

the following pages, have been reviewed/updated

  1. Emacs: Split Windows
  2. Emacs: Save Split Windows Configuration
  3. Emacs: Effective Windows Management
  4. Emacs: Make Buffer Flow Side-by-Side
  5. Emacs: Restore Opened Files, Windows Config
  6. Emacs: Set Default Window Size

emacs window/frame management problem

an emacs frequently asked questions, the window/pane config reset problem. https://www.reddit.com/r/emacs/comments/7evidd/windmove_shortcuts/

my reply

that's a frequently asked questions, comes up every few months.

Best solution, is to stop 1-window full-screen workflow. Because, all sorts of emacs commands will constantly pop up and split your nicely setup panes. You'll have to fight it every few minutes.

This 1-window style came from terminal and IDEs. The former, are conditioned to have just 1 window (unless you make another connection to server). The latter, the IDEs, are based on pallette idea, where you have a fixed pane config, and every tool is predefined to sit in some pane/drawer/tab that lets you open or collapse them.

there are various packages that help you β€œreset” your windows config. But they just add more work to your fingers.

Instead, use 2 windows side by side workflow. This way, your window config never changes unexpectedly. And, operating system provides much more flexible and powerful ways to control them. (e.g. Mac expose, or various linux tiling managers, and virtual screens) And, you can now fully utilize emacs split/unsplit horizontal/vertical on any window as you work, view different parts of a buffer, run calc, calendar, dired, shell, etc. Fluid and flexible.

check out my article on effective windows management for screenshots and detail.

Emacs: Effective Windows Management

Best Keyboards for Emacs (more update)

2 new commands for Mac. xah-open-in-textedit, xah-open-in-safari

see Emacs: Open File in External App

emacs lisp, still don't have trim string. how many more years?

in any language, trim string is a fundamental string function. emacs lisp still don't have it! sitting in limbo for 3 years. How many more years? see


code example for 30 new list functions

emacs lisp. Planning to write example for each of the 30 new elisp functions.

see Elisp: Filter a List

patreon tip me if you like to see it.


better nav panel, emacs + elisp in 1 place

now, the side panel, contain both emacs and elisp in one place, for easy navigation.

see Practical Emacs Tutorial

empty cache and refresh browser. (in chrome, shift+f5)

tip me at my patreon. https://www.patreon.com/xahlee

emacs lisp sequence functions finally here

emacs 25.1 added over 10 list processing functions. Finally. For detail, see

Elisp: Filter a List

Emacs: Cycle Space Hyphen Underscore (repost)

removed comment system on my site

just removed disqus comment on all my sites for now. They are now forcing image ads. And their ads are those low quality sensational types. To opt ad free, would be $10/month. But, comment takes 30min/day to reply, and 95% are garbage. (i have 5 thousand pages on my sites) might add back, we'll see. let me know what you think.

Emacs: Search Text in Current File

important update. For isearch-forward, make these equivalent: sequence of: space newline tab hyphen underscore

before, i didn't add a plus sign, so that if you isearch a text with newline followed by 2 spaces, emacs will not find the next occurrence. Possibly a emacs bug.

science of Keybinding Design ⌨

lisp is dead

today is probably a good day to declare lisp dead. For a few years now, you don't hear lisp as cool stuff anymore. Not even much clojure. A new generation of programers, unceremoniously took place.

I think time moved on. No new Common Lisp coders. Scheme quietly went away, replaced by pyret (python) by themselves. Clojure struggle among tons of new langs, confined in enterprise coding on java platform. emacs lisp remain in handful of emacs users.

San Francisco Bay Area Keyboard Meetup Impressions. i smashed 100 keyboards! see San Francisco Bay Area Keyboard Meetup 2017-11 Impressions

updated the following.

Emacs: Eww Web Browser (major update. new screenshot. added keybinding, and a new rename function)

buy me a coffee at my patreon. https://www.patreon.com/xahlee thanks.

Emacs: Regex Tutorial (minor update)

Tips on Long Term Emacs Productivity (updated)

thanks to jcs for mention, at http://irreal.org/blog/?p=6733

jcs is a long time emacs blogger, check out his blog, containing many tips i don't cover much here, especially on using org mode, TeX, and web security.

Emacs Opening Large File Slow (on its own page)

Emacs: Latin to Gothic (𝔀𝔬𝔱π”₯𝔦𝔠) (minor update)

Best Way to Type/Insert Parenthesis, Brackets

another emacs rsi


Elisp: Find String Inside HTML Tag (minor update)

Elisp: Write grep (minor update)

Emacs: xah-lookup.el, Lookup the Web (corrected a init setup doc error.)

Emacs: Cycle Fonts by Command (minor update)

Emacs: Effective Windows Management (minor update)

the following line wrap articles have been reviewed and updated

the following has been reviewed and updated

New version of xah emacs tutorial is sent to previous buyers. If you haven't already, buy it now.

Buy Xah Emacs Tutorial

Thanks to many who requested to be kept on the update list. You'll continue to receive updates.

Elisp: Simple Emacs Lisp Examples (updated)

Emacs: Select Line, between Quotes, Extend Selection (updated xah-select-line, xah-select-block, so that they don't depend on my other functions.)

emacs on Mac!

Why Run Shell in Emacs (added a Mac screenshot!)

since am now on a Mac (after 5 years on linux desktop), am going to add more Mac screenshots.

by the way, my history of emacs desktop (at home) is:

Start Emacs with New Empty Buffer

Emacs: New Empty Buffer

updated. now it returns the buffer. With instructions on how to start emacs with empty buffer.

thanks to Vaddi3 asking on https://www.reddit.com/r/emacs/comments/79wsn7/mx_helppls_startup_empty_buffer_error/

Run Emacs in Terminal vs GUI (updated)

ask me questions on patreon


San Francisco Bay Area Mechanical Keyboard Meetup, Saturday, November 11th, 2017

I'll be going! Thanks to Andy Lee.

i'll be there probably 10am to afternoon. Exactly i don't know yet. email or twitter me if you want to get in touch.

so far there are 200 people registered. Be sure to register. I think they allow max of 300.


Best Keyboards for Emacs (updated)

put a few bucks in my patreon. https://www.patreon.com/xahlee

or buy my emacs tutorial. Buy Xah Emacs Tutorial

X-Bows Keyboard Unboxing

I highly recommended this keyboard for emacs.

ask me question on reddit https://www.reddit.com/r/MechanicalKeyboards/comments/73zhle/xbows_keyboard_unboxing/

emacs smex mode 2017 10 76342
emacs smex mode

Highly recommended.

If you have a question, put $5 at patreon and message me on xah discord.
Or support me by Buy Xah Emacs Tutorial