Xah Emacs Blog

You, put $5 in my patreon. https://www.patreon.com/xahlee

emacs pinky pain

hackernews https://news.ycombinator.com/item?id=17132938

[Stopping the RSI pain that almost destroyed my programming career By Itamar Turner-Trauring. At https://codewithoutrules.com/2016/11/18/rsi-solution/ ]

Every few months, you see horror stories of emacs pinky. Hand pain, seeing doctors, tried everything, etc. This been going on for 20 years, ever since internet allows average people to talk.

next time you see emacs fanatics telling others to stick to emacs default keys, tell them to stop.

I've written a thousand times. Here's again. Repetitive Strain Injury is illusive. Each person's case and cause is different, and usually very hard to pinpoint exactly what's the cause other than using keyboard too much.

but, concretely, 2 most important things are,

other things, such as take breaks, exercise, standing desk, watch your posture, reduce stress, etc are all important. But as i said, it depends on each person.

the keyboard and emacs keybinding, are 2 most concrete, universal, things you can do to avoid Repetitive Strain Injury.

Without more detail, it's impossible to say which is the more important, good ergo keyboard or good keybinding set. For example, exactly which keyboard are you currently using, do you touch type, the amount of typing you actually do (average programer? prolific novelist?), your age, fitness level, current Repetitive Strain Injury status, etc.

… and there are young things, who are reading this with a smug face, because they think it'll never happen to them. Well, I am competitive athlete for most of my life, doing extreme sports stuff (walking on the tire of a unicycle, on college swimming team, free style roller blades and holding onto cars). I find it laughable i'd get Repetitive Strain Injury or getting old. You might be one of those lucky who can swim across ocean at age 100. Or you might drop dead at 40 with total health. Nature don't do favors.

here's a new links collection on emacs pinky

xah emacs demo 2018-05-22

perm url Xah Emacs Demo 2018-05-23

Many young people today are not aware there is a feud between open source and FSF Free Software. Here's latest video of Stallman

Richard Stallman talks about Microsoft Azure Sphere OS

made a video of me typing on the kinesis keyboard.

watch at Kinesis Advantage2 Keyboard Review

UI design, pie menu https://www.reddit.com/r/emacs/comments/8kkite/history_pie_menus_a_30_year_retrospective_don/dz9vozi/

Emacs in Microsoft Windows FAQ

Elisp: Run Elisp Code When File Opens

My Typing/RSI Experience 1992 to 2017

thanks amir bajan 2018 05 15 cd72a
Thanks Amir Bajan. 2018-05-15

here's the full pic

Amir Bajan setup 2018 05 15 17a6b
Amir Bajan's setup 2018-05-15 https://twitter.com/amirrajan/status/996556016664956934

Best Keyboard for Emacs (added smartyao)

Emacs: Backup Current File (code update. made the backup file name's timestamp format from x.html~20180515T102319~ to x.html~2018-05-15_102319~ )

should math notation be used in programing languages

my post at https://www.reddit.com/r/emacs/comments/8j5fz8/question_prettifysymbols_can_someone_sell_me_on/dyztuin/

if one simply replace function names by math symbol, such as λ φ ƒ → ∑ etc, then, no, it won't work. You need the programing language be designed for it, such as APL.

i've tried this. see Programing Style: Variable Naming: English Words Considered Harmful Programing Style: Variable Naming: English Words Considered Harmful

also, using math notation is absolutely advantageous. For example, here's Mathematica http://xahlee.info/comp/i/Mathematica_syntax_StandardForm_screenshot.png but you need a markup system as part of the syntax. (think of html/xml, org.)

see the isomorphism between Mathematica syntax and lisp here Mathematica vs Lisp Syntax

also, traditional math notation is not precise, true. However, when it is part of programing language (e.g. APL, Wolfram Language, Fortress, etc), then it necessarily is so.

example of Fortress here, using ← ⟦ ⟧ ⟨ ⟩ ℤ ≠ etc. http://xahlee.info/comp/i/Fortress_computer_language_Guy_Steele.png

Problems of Symbol Congestion in Computer Languages; ASCII Jam vs Unicode Problems of Symbol Congestion in Computer Languages; ASCII Jam vs Unicode

the problem of math notation, and programing language replacement, is eloquently explained in Prologue of this book Functional Geometry, 2013, Sussman, Wisdom, Farr. Sussman is the same guy who is co-author of Structure and Interpretation of Computer Programs

also, traditional math notation sucks. But there's a movement, called calculational proofs, espoused by Edsger W Dijkstra, and today in math proof systems/languages. (e.g. agda, idris, coq, homotopy type theory, sequent calculus, etc.) because when math notation becomes part of programing language syntax, the traditional notation has to go. It needs one that has precise grammar, yet, concise, readability, emulating traditional 2d notation.

a good notation, isn't just more readable, but it captures the structure, semantics, and guide future directions of thought. This has happened many times in history of math.

whether the notation should use non-ascii symbol as better, in general the answer is resounding yes. The obstacle we have in using them in programing languages, is old tradition momentum, and current softwares. Note, vast majority of programers in USA, don't know how to type non-ascii such as λ. Most programers are not even familiar with math notations and symbols. And those who know how to input λ φ ∑ ℤ → ≥ etc, don't know how to do it efficiently (this applies to most emacs devs).

if you are interested in this topic, there is a collection of articles here: https://github.com/hypotext/notation originally, it's about math notations, now it expanded to music and others.

Should You Use Pretty Lambda λ in Code?

reddit discussion https://www.reddit.com/r/emacs/comments/8j5fz8/question_prettifysymbols_can_someone_sell_me_on/

if you don't know what pretty lambda mode is, see Emacs: Display Lambda as λ

ho, lots info in your post. btw, the “remembering large complicated patterns” link has a typo.

i don't like pretty symbols mode, but for different reasons.

My reason is that, it introduces complexity. Namely, it renders words such as lambda by λ, but the underlying text is still “lambda”. So, especially in programing code, this is confusing.

another solution some people like is that there's a specially designed font ligature , so that == shows up without gap in between.

the project is called fira code, here https://github.com/tonsky/FiraCode

i don't like it neither due to complexity.

I do, however, love math symbols used in programing languages. However, the language must support defining operators using unicode. Very few languages have that feature. Mathematica is one. OCaml no, and last i looked, nor haskell. (note, defining operators e.g. ⊕, not needing extra parenthesis as part of syntax or similar.)

in my emacs lisp, JavaScript, i've used math symbols for function or variable names. e.g. φ ξ, i use them as sigil. (think of sigil to syntax as types to semantics) I've done this for 5 years or so, but eventually stopped, because most people can't swallow it. Now i use $ @ as sigils in elisp. $ for $localvar and @ for function @param.

had lots controversy. my story here The Sigils WAR, Language Design and Coding Convention

using math symbol or unicode in code is getting more and more popular. Lots mainstream programing language or project uses it, especially in documentation. Maybe few more years down the road, people will accept ∑(ξwidth, ξheight).

of the reason you gave, i agree, and is compatible with using math symbols in code. It does not necessarily enhance ease of reading, but nor degrade. (i am very much into the subject matter too, e.g. speed reading, cognizance, notation systems, snake_case vs camelCase, monospace vs proportional font etc. i read write chinese, and have studied its input systems, simplification issue, font styles, phonetic systems, etc.)

if you haven't already, subscribe to my keyboard blog. lots goodies.

Xah keyboard Blog

Emacs: Xah Fly Keys Customization

added how to change keys of command mode.

Emacs: Xah Fly Keys

some key changes, for the better. (all dvorak notation in this writeup)

Richard Stallman wrote a story in 2002, My Lisp Experiences and the Development of GNU Emacs

someone posted it on reddit again.

it's quite nasty. As they say, winner writes history.

see Daniel Weinreb Rebuttal to Stallmans Story

See also: Lisp Programer Daniel Weinreb Died (1959 – 2012)

Emacs: Xah HTML Mode

that's the package i use to write my websites.

my websites, is some 6 thousand html files, manually crafted, over 20 years. 6k files not counting literature annotations such as Arabian Nights or Shakespeare stuff [see World Literature Classics] nor mirrored tech docs such as elisp manual.

this manual system, is actually more efficient, than any org mode or markdown or whatnot octogerryhide you use to create websites or blogs. With respect to keystroke count.

but in short, if you work with pure static html5, the package might be useful to you.

who's using it? am guessing nobody except me.

major fix of a commit of the package

Emacs: xah-replace-pairs.el Multi-Pair Find Replace

if you got it yesterday, please update from github.

emacs Infinite loop bug

My emacs just froze. Infinite loop. Unable to cancel quit exit. Haven't had this for few years.

seems actually reproducible. let's see what's up.

when there's a crash, usually there's 2 things to do. 1, find the problem, fix it, move on. 2 drill down on what caused the crash exactly. Usually we just do 1 and move on, cuz lots things to do, lots opened files, in mid of projects. To do 2 usually is very time consuming.

the infinite loop is caused by xah-replace-pairs-region. It is using unicode private Private Use Area A. i.e. U+F0000 is intermediate replace string. Still, no reason it'd be inf loop.

ok. The situation is this. A find replace pairs function. Pairs is eg [["str1" "rep1"] ["str2" "rep2"]...]. When doing this, you want to introduce a intermediate replace string. Else, you get feedback loop problem of replacing char sequence that didn't exist in the original string.

read more about it here Emacs: xah-replace-pairs.el Multi-Pair Find Replace

currently, the moral is, never do clever hacks. They bite when any slight change happens. And when it happens, it's hell to debug.

at this point, i changed the xah-replace-pairs-region implementation to use a random string again. And move on. too lazy to try to see if there's an actual emacs bug. It's still possible something in emacs went wrong, because trying to replace unicode char in unicode private Private Use Area A shouldn't result in infinite loop.

Emacs: Xah Math Input Mode

more update. Now, use short abbrev of letter as much as possible. Not ascii punctuations that emulate the look. e.g. inf for ∞, not oo

Richard Stallman, Becoming Old Despot


there are lots ignorant millennials today, in USA and i think in Europe too, who think communism is great. Note that open source and FSF, is a form of communism, of software. However, 20 years ago, they wouldn't admit it.

today, rms, have even become some sort of selfish tyrant. In past 30 years, he attacks unix, linux, gnome, kde, python, X11, saying they must be GPL compatible. But now he presses MELPA force people to GPL3, from GPL2 and other that are considered free software licenses by FSF.

in many ways, rms is just old (65), ideology issues aside. He now constantly voices the most blatant idiotic opinions about emacs and programing. He haven't been coding for 20 years, after all.

it was supposed to be, whoever is the emacs maintainer has final decision on technical issues, while political issues rms has final say. But actually, in current as well past maintainer, rms dictate technical decisions simply by voicing his opinion in a strong way, or when in argument with someone. Then, others, don't dare to counter him. Of course, you can, but if you want still be good party in the emacs dev, you better not. That's how things works.

see also

[Why Utopian Communities Fail By Ewan Morrison. At https://areomagazine.com/2018/03/08/why-utopian-communities-fail/ ]

Great in depth survey on what happens to utopian societies in the past and today.


ttt fb60d

here's a monster. https://www.reddit.com/r/emacs/comments/8ew9pu/looking_for_really_unorthodox_emacsd/dy1w8oc/

create and search text templates

reddit question and my answer https://www.reddit.com/r/emacs/comments/8f4ry3/existing_package_to_create_and_search_text/dy1vf8l/

i think this interactive abrev can do what you want.

basically, tag comes in the form of abbrev (each is arbitrary string, so can be multiple words), and your template for that tag would be the expansion string.

then, after you call the command, ido pops up, just type any tag name, enter, and template will be inserted.

the idea is basically using emacs abrev system, but solving the problem of forgetting what abbrev you have.

i'm using this system, can have tens of thousands of abbrevs.

Emacs: Interactive Abbrev

Emacs: Xah Fly Keys

now supports Colemak Mod-DH layout. Thanks to Henkjan Gersen.

plan9 acme viper evil ergoemacs and xah-fly-keys!

Then I found xah-fly-keys. This is a modal set of keybindings for Emacs, that is, the keybindings consist of pressing keys in succession rather than holding down modifier keys. It's quite good, quite good.

found a blog about editors and emacs modes such as viper evil ergoemacs and xah-fly-keys!

[Writing to think 2: Write harder, the editor caper By Jaredj. At http://j.agrue.info/the-editor-caper.html ]

a good read.

[see Emacs: Xah Fly Keys]

He made 2 criticisms about xah-fly-keys.

His opinion stands on its own, but i should make some comment as reaction.

In xah-fly-keys mode, there are some keys, that in command mode, just do insert. These are keys that are on bad pinky positions, such REVERSE SOLIDUS.

I have experimented for few months, that all keys when in command mode do some command other than self insert, to fix this logical problem. But i found that, it's not practical. These keys, have bad pinky positions, or randomish positions on ergonomic keyboards such as kinesis ergodox keyboardio etc. The question is, what command you want to put to them?

The second thing, about vi style editing of e.g. 5d5 to delete 5 lines. This style i have big problem with and wrote about. The issue is, it requires you to count, requires a brain cycle or visual cycle. Unless you stop and think, you often overshoot or undershoot. So, in almost all commands in xah-fly-keys, i don't support giving it a count. Note that this counting style are due to history. That is, you give command to computer in the 1970s, and give another command telling it to update the screen. So, this command oriented way created the counting style. There was no real-time display as you type, and emacs was the first or one of the first. Better way is simply to hold the key and see the screen update in real time, release the key when you want it to stop.

He wrote a subsequent blog:

[Writing to think 2: Write harder, the keyboard caper By Jaredj. At http://j.agrue.info/the-keyboard-caper.html ]

Emacs: Insert Random Number/Hex/String (minor code update.)

Emacs: Best Undo/Redo Mode (updated)

create thumbnail elisp 2018 04 19 932ba
spontaneous emacs lisp

Emacs Lisp Basics (added conversion of int/float)

For their first basic task, it took me 35 keystrokes to finish the task and to close the file (with xah-fly-keys of course 😉 ). Which is just 4 key presses more than most efficient vim solution posted on the vimgolf website. —Arkady 2018-04-17 emacs and vi: Science of Command Efficiency#comment-3859081101


Emacs: Convert Image Files in Dired (code minor update)

emacs magit mode annoyance. By convention, generated buffer such as diff should have name starting with *. But since last year or so, magit's generated buffer no do that anymore. e.g. magit-process, magit-diff. so your buff switch code can't tell which's which.

Emacs: Insert Date Time (code update. added a new format)

emacs keyboard macro

this may seem counter-intuitive, but for many tasks, keyboard macro takes 5 minutes, but writing elisp will take 30 min.

learn it today! Emacs: Keyboard Macro

Elisp: Functions on Line (minor update)

Emacs: Delete Whitespace around Cursor (code complete rewrite)

best ergonomic keyboard for vanilla emacs users

another reddit discusssion https://www.reddit.com/r/emacs/comments/88xr18/best_ergonomic_keyboard_for_vanilla_emacs_users/

my comment:

ergodox got thumb problems. If you don't have largish hand, don't go with it. If you really want it, make sure to move whole hand instead of stretching thumb.

see this horror story Ergodox Keyboard Thumb Keys Pain

Kinesis advantage 2 is what i use.

Better than ergodox, but still, most thumb keys require reach, for Asian hand. I move whole hand to press thumb keys other than the 2 nearest ones.

Keyboardio i tried. Don't have much experience so i can't say. The pinky column is much lower than all keyboards, so requires more learning.

There are some others similar to your list i think that's worth looking into.

I can't say which is best, because it all depends on how you value cost, tented vs none, 1 piece vs 2 pieces, and firmware programable vs not, or driverless programable.

another one worth mentioning, is the cheap Microsoft Sculpt. (don't get the similar Microsoft Surface one) The Sculpt is particularly nice because it's got huge Alt keys, especially if you use emacs default keys. Just swap Ctrl and Alt.

I have a review of them here Ergonomic Keyboard Reviews

Emacs: Change Brackets/Quotes (updated code)

Emacs: URL to Link Command (major rewrite)

Am update html related pages.

Emacs: Xah Math Input Mode

(added “cp” for , function composition)

hydra and god mod

seems lots people use hydra and god mode.

i think they are 2 of the most worthless keybinding packages.

they don't do much, creates complications, and what they do is one of the least useful for keybinding efficiency.

you can easily create key sequences Emacs: Define Key Sequence

and you should do so for all frequently used commands.

comment on reddit https://www.reddit.com/r/Xah/comments/87kxcv/emacs_hydra_and_god_mod_most_worthless/

is lisp a failed language

my post on reddit https://www.reddit.com/r/emacs/comments/867trt/developer_survey_results_2018_machine_learning_on/dw7rnvc/

well, i wouldn't say failed language. Remember that airplane ticket company (ITA Software) written in Common Lisp and bought by google some decade ago? afaik, it's still in Common Lisp in 2012.

Google even have a Common Lisp style guide https://google.github.io/styleguide/lispguide.xml , written by François-René Rideau, a old acquaintance.

AutoLisp was a success. (i was introduced to AutoCAD inventor by Wolfram) in 1995. The guy John Walker is interesting. He is on twitter https://twitter.com/Fourmilab and his website has many weird interesting things.

AutoCAD and AutoLisp is hugely popular in China. I suppose due to massive pirated version in 1990s. I think it's used in every college and is the standard in any 3d.

as far as i know, a decade ago, i read in Wikipedia that AutoCAD replaced autoLISP by visual basic. What's the situation now?

also, Scheme Lisp is still used in places. Arc Lisp of Paul Graham still runs hackernews as far as i know.

and clojure has a corner in enterprise java.

[see Clojure Tutorial]

and remember John Carmack (of Doom and id software fame) created a scheme lisp language for Oculus in 2015? (any know what's up with that?)

emacs lisp is still going, albeit is now far worse than any of perl ruby JavaScript. emacs dev has lots serious problems. The language stagnated for about 20 years now. And emacs community hush about it. And the millennials dunno better, pushing for Language Server Protocol, which will drive a nail in emacs lisp coffin.

[see Emacs Lisp Sucks Donkey Ass. Please Grow Emacs, Not External Tools]

so, i wouldn't say lisp is failed language. And in 1980s, it was one of the perhaps top 3, most successful language.

also, although i don't buy the fanaticism about nested parenthesis as most lispers, but i do think it has a significant advantage, in fact i want even more pure nested parenthesis (e.g. rid of special reader syntax such as # . ; ,@). If lisp rids of these, and in addition, adds m-expr layer as in Wolfram Language, that'd be the best syntax system possible.

See also:

why isn't lisp in today's artificial intelligence scene


lisp was the language of Artificial Intelligence. That's mostly back in the 80s.

it wasn't today because most languages do better. Starting with perl in the 1990s, where 'was said perl is a lisp. (due to, that it supports list/array dynamically. (of course, almost every language since does)). Then, we constantly hear python is a good-enough lisp (e.g. first from the AI/LISP expert Peter Novic), then it's said ruby is a lisp (which bear some truth, as its inventor Matz based ruby on perl and lisp). (am pretty sure if you search reddit emacs here you'll find articles of these sentiments that was widely read) (JavaScript, before or after ES2015, actually is more similar to lisp than python or ruby. (the designer Brendan Eiche modeled js after Scheme Lisp and Self).)

in my opinion, lisp hasn't moved on because the language stagnated due to cult. Common Lisp and Scheme. CL is stuck in 1980s standard and never moved on. Scheme confines itself to academia and obsesses with concept of elegance, tail recursion forever. (and the biggest fort of Scheme Lisp abandoned it, created Pyret. (which is scheme lisp in python syntax.))

The other major lisp of late, Clojure, began in late 2000s. But Clojure changed the nature of lisp significantly. ① It destroyed the regular nested parenthesis syntax by introducing tons of incomprehensible meta syntax. (like lisp's 「# ; . ' ` ,@」 but ~20 more), ② and it intertwine itself to JVΜ and Java the language and enterprise computing, ③ and it invented many unpopular/hard-to-understand concepts/semantics for concurrency.

It picked up users in the Java enterprise space, but seems also have lost steam for a number of years now. Especially because newer shiny functional languages are popping up every few months. In particular, kotlin is eating the pie in Java space. (one famous lisp expert and lover, Steve Yeggs, highly praises kotlin, as he has done with ruby and ocaml in the past.)

i myself do not see lisp as particular suitable to AI, except its highlevel nature (in comparison to other languages at the time). In my opinion, it was in the past, because, ① social timing is right. There was little or no alternative. ② the disassociation with machine hardware, but takes a functional programing and math oriented approach to programing, which i still think are the best aspects of lisp.

but i do think lisp's functional programing focus, and regular nested bracket, are big advantages. It could do much better even today. One success story is Mathematica (aka Wolfram Language), where it actually does Artificial Intelligence today in its own way. e.g. wolframAlpha. Wolfram Language has a syntax layer what John McCathy called “meta-expression” (m-expr, in contrast to s-expr), which the lispers of the 1990s heavily belittles. (most of the Common Lisp or Scheme lispers do not actually understand it. They think it's just infix notation. Actually, the gist is a two-way syntactic isomorphism, that the mexp and sexp can be transformed into each other syntactically, anytime (as in pressing a button in emacs) without any loss of info, and are 100% equivalent semantically. (most so-called “sugar syntaxes” in computer language, including Scheme, are not 100% semantically equivalent.))

But most lispers i've talked to, do not view lisp the way i see, instead, they are prone to machine hardware stuff aspects (reference, pointers, memory address, compiled code, etc low-level efficiency, obsesses with concepts of list being nested references, cons, anti-array, circular list, thread, object oriented lisp (CLOS), etc), as are most industrial programers are, and have never in their life invested in math oriented programing or languages. (Wolfram Language, APL, Julia, Matlab, etc.)

emacs undo/redo corruption

see Emacs: Best Undo/Redo Mode

Emacs used by 4.1% of Stackoverflow users, Why are they not using Emacs? How can we attract them?


it's easy to double emacs users within 1 year.

just make the 7 standard keybindings, open close save, copy cut paste undo.

this needs to be done at emacs core. Turning on cua-mode by default is a step forward, but what really need to happen is for emacs dev to change at the core.

see Why Emacs Keys are Painful

if, out of the box, any one who knows notepad can use emacs without learning anything, then emacs users will double within 1 year.

See also: Modernization of Emacs: Simple Changes Emacs Should Adopt

emacs lisp coding style??

my take. https://www.reddit.com/r/emacs/comments/853ka5/modern_emacs_lisp_development_question/dvw3waw/

am probably gonna be voted down to hell, but here's my way:

The result, should be most simple, lean, readable, maintainable, and fast, code.

the gist of the advices above is, stick to only computer science basis, avoid programer fashions, and do not hack.

if you run into a problem, such as elisp seriously lacking string function, lacking namespace, named parameter, ask emacs dev to add them. (e.g. the limbo state of (require 'subr-x) for string-trim et al.)

Emacs: Unicode Tutorial (minor update)

follow xah

follow me on my new mastodon account at https://mstdn.io/@xahlee and on reddit https://www.reddit.com/user/xah

Emacs: Set Minibuffer Font Size

Emacs: Font Setup (minor update)

emacs and vi: Science of Command Efficiency

to understand all issues about keyboarding science, start with that article.

major update to the doc of emacs xah-fly-keys


Emacs: xah-find.el, Find Replace in Pure Elisp (package update)

to my patreons, an intro to Xah Lee, is that right?


RMS the Emacs Tyrant


full thread of exchange here Richard Stallman, Emacs Tyrant

typescript javascript elisp 2018 03 01 55852
galamapain, dealing with typescript, javascript, then have to deal with emacs lisp that runs my code. xah-run-current-file, xah-ts-compile-file, xah-js-mode, xah-ts-mode.

typically, what happens is, i code JavaScript, but actually TypeScript because ES2015 etc, find something not working well, i modify my emacs JavaScript mode, or my TypeScript mode, or xah-fly-keys.

this applies to coding elisp with xah-elisp-mode or clojure with xah-clojure-mode.

See also:

replace invisible unicode chars https://www.patreon.com/posts/17392376

more code update, run current file, and compile TypeScript https://www.patreon.com/posts/17344133

emacs JavaScript mode war https://www.patreon.com/posts/17343934

Emacs: Ido Mode (minor update)

Lisp Machine Keyboard, High Cool Factor, Lousy Design Factor

reddit question on lisp machine keyboard and emacs, at https://www.reddit.com/r/emacs/comments/817bp5/since_lisp_keyboards_are_looong_time_gone/

my answer:

the lisp machine keyboard has high cool factor but ergonomically it's really the worst.

[see Lisp Machine Keyboards]

any cheap mechanical keyboard would beat it in terms of ease of use, comfort, macro abilities, typing speed, etc.

if any is really interested in keyboarding efficiency, i recommend keyboardio, smartyao, Microsoft sculpt, kinesis, x-bows, kinessis gaming, or ergodox and many variants.

they feature one or more of:

If you don't touch type and don't plan to learn, and do not have typing load as heavy writer, then you can immediate rule out those split ones, since split isn't useful for non-touch typers that much.

[see Touch-Typing, a Relic of Keyboard Design?]

as for the space-cadget keyboard:

[see How Many Keyboard Shortcuts Are There]

there's a nice video view of space-cadget keyboard by a keyboard switch expert chyrosran22, see Symbolics Space-Cadet Keyboard

Emacs: Show Cursor Position

on its own pag. from Emacs: Init File Tutorial



Elisp: Interactive Form (updated)

emacs most negative comment here is holier-than-thou syndrome.

reddit discussion. Master emacs in 1 year. https://www.reddit.com/r/emacs/comments/7z6pjb/master_emacs_in_one_year/dutha0x/

my comment.

most negative comment here is holier-than-thou syndrome.

people wants to attach mythical quality to emacs.

as tooling goes, mastery of atom editor or code editor and its js language, is far more deep and rewarding, financially or how modern software system works.

if a tool kept you thinking you always don't know something, there's something wrong with the tool or the community.

in fact, vast majority of emacs users for over 10 years, only know how to use the very bare basic features, and know no emacs lisp at all. I know, in part because lots such users told me so, in email or in comment. (most, will not disclose their names in public)

and there are very old users (over 20 years emacs), who even have problems with upgrading emacs, and still stick to how emacs ways of 20 years ago, with their 20 years old habits and config.

most emacs users, they do not read online emacs blogs, or, maybe a couple of times per year. What we see on reddit or other emacs forums, are not typical emacs users.

emacs pinky wedge on control key

emacs pinky wedge 2018 02 24

added to How to Avoid Emacs Pinky

See also:

Control Key and Capslock Key Positions in Old Keyboards

Emacs: Init File Tutorial (updated)

new index page. Emacs Init Setup

Elisp: File and Directory Functions (minor update)

Elisp: Regex Tutorial (updated)

Emacs: Open File Path Under Cursor (code update. Now open f.ts if exist, instead of f.js)

Elisp: String Functions (on its own page, expanded)

Emacs: Compile Current TypeScript File

if you like my work, put $5 at https://www.patreon.com/xahlee

or, Buy Xah Emacs Tutorial

Emacs: Run Current File (more code update. TypeScript part changed)

xah-fly-keys integration

discussion on reddit https://www.reddit.com/r/emacs/comments/7yprnq/xahflykeys_integration/

post your experience there.

emacs keys how-to

emacs keys howto 2018 02 20 71222
Emacs Keybinding, Keyboard, Articles Index

Emacs: Convert Straight/Curly Quotes (code update)

Elisp: Change URL into HTML Link (updated code)

Xah Emacs Sitemap, with random page button

Emacs: Run Current File (bug fix. No more buffer not found error when eval a elisp buffer)

iOS Crash with Indian Unicode Characters

ios unicode crash 2018 02 15 55551
[see Search Unicode]

ok, i found a emacs bug! this sequence U+0915 U+094D U+0930 U+200C U+093E results in क्र‌ा the last char does not combine in emacs! now, crash your Mac!

Emacs: Xah Math Input Mode now support U+ prefix, e.g. u+3b1α

emacs grep, gnu grep, problems

my reply on a reddit question:


in 1990s to 2000s, first thing on any machine, is to install gnu version of file utils and text utils (which includes grep).

now, i don't bother. These tools, wasn't as important as in the past. e.g. python ruby golang etc, one can write trivially and do much better.

new ones keep cropping up every 5 years. as well as new shells. But i never bothered. For speed, a flash drive is much more important than spinning disk. Most time spent is loading files. (i 'grep' or do find/replace on 5 thousand files every week for past 10 years)

also, gnu text util has unicode bug, but they refuse to consider it as bug. see Linux Shell Util uniq Unicode Bug

so today, i use unix grep only when i need to search a word. If the search involves unicode, or multi-line text, or programing language code with lots slash or backslash, i either use xah-find.el i wrote that stays in pure elisp (avoiding unicode problem, multi-line problem, and toothpick syndrom escape problem), or go to a python script i wrote, for 5x faster speed. (gonna do a golang version soon)

See also:

Emacs: Run Current File (updated code. Now, there's output, switch to the output buffer.)

emacs controversy. What causes emacs slowness


That's Xah vs Eli

MELPA No Longer Distributes Packages from Emacswiki

Buy Xah Emacs Tutorial

The best emacs + emacs lisp tutorial in existence, by far, of depth, breath, and readability. Get my book.

Buy Xah Emacs Tutorial

Patreon me $5 patreon

Or Buy Xah Emacs Tutorial

Or buy a nice keyboard: Best Keyboard for Emacs

If you have a question, put $5 at patreon and message me.