Xah Emacs Blog
You, put $5 in my patreon. https://www.patreon.com/xahlee
emacs pinky pain
[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,
- get a quality ergo keyboard
- use xah-fly-keys, ergoemacs-mode, or evil mode, or turn on sticky keys. Important: These, and only one of these, not hydra, god mode, and not the god damn stupid swapping control and capslock.
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
Emacs Pinky Topic
- How to Avoid Emacs Pinky
- Why Emacs Keys are Painful
- Best Keyboard for Emacs
- Emacs: Xah Fly Keys
- Emacs's Command Frequency Statistics
- Emacs: Why You Should Not Swap CapsLock and Control
- Famous Programers with Repetitive Strain Injury
- My Typing/RSI Experience 1992 to 2017
- Programer Hand Health: vi Esc Key Syndrome
- Emacs, RSI, My Experiences
- Using Voice to Code Faster than Keyboard 📺
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
made a video of me typing on the kinesis keyboard.
watch at Kinesis Advantage2 Keyboard Review
here's the full pic
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
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?
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.)
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.
added how to change keys of command mode.
some key changes, for the better. (all dvorak notation in this writeup)
- 【space c i】 is now xah-copy-file-path. was 【space i】
- 【space i】 is now kill-line
- 【space 6】 is now xah-upcase-sentence
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.
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
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.
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.
[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.
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.
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.
- that some keys in command mode just insert the key (as if in insert mode)
- it doesn't have vi's style of editing by number count. e.g. d5d to delete 5 lines.
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?
- You don't want to put frequently used commands to them, because that induces Repetitive Strain Injury.
- But then, for rarely used commands, giving them those keys don't make sense either. Because, you rather have them as key sequences by the standard leader key system. With leader key sequence, you press 3 easy keys (usually thumb and index finger). Compare it to switching to command mode and press a pinky key it's not worse.
- Also, for keys in command mode, you typically want it to be a command that are repeatable. [see Keybinding Design, Fast-Repeat Commands] I did map some such command (such as
xah-backward-punctfor the square bracket keys.). But haven't found suitable command for REVERSE SOLIDUS.
- And, lastly, i find that, for keys like REVERSE SOLIDUS, when you need them, you want to insert them. It's convenient to do so while still in command mode.
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)
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/
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.
- Kinesis Gaming. → if you don't mind non-grid layout, get this. Driverless programable.
- SmartYao. → simple, 2 pieces of grids. More key than any other. firmware programable.
- Matias Ergo pro. → got the biggist ALT key, and under thumb, between x c.
- Mistel Barocco. → super compact if you like that. driverless programable.
- X bows → compact, physical ergo layout, and adaptable to tradition.
- Esrille New. → $500 if you want the “best”
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.
(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.
is lisp a failed language
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?)
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.
why isn't lisp in today's artificial intelligence scene
lisp was the language of Artificial Intelligence. That's mostly back in the 80s.
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
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.
if, out of the box, any one who knows notepad can use emacs without learning anything, then emacs users will double within 1 year.
emacs lisp coding style??
am probably gonna be voted down to hell, but here's my way:
- Avoid using external packages if you can. Especially not those dash f s etc single letter named ones that try to be a nice interface wrapper with some enhancement to builtin functions.
- Avoid cl lib unless you are out of wits. Stick with plain elisp.
- Avoid macro (unless builtin), or any fancy constructs or features, such as defadvice, or use symbols when string does fine.
- Avoid libs that add a layer that tries to fix fundamental elisp problems, such as package that tried to introduce namespace, or pseudo-thread, etc.
- Avoid the idioms of hacker community or pop elite coders say. Instead, follow only idioms that relevant to computer science, such as algorithmic complexity. (e.g., avoid so-called “patterns”, “KISS”, “DRY”, “Unix Philosophy” kinda stuff.)
- Avoid “coding style” guides. Follow only emacs lisp conventions as documented in elisp manual.
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)
Emacs: Font Setup (minor update)
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
this applies to coding elisp with xah-elisp-mode or clojure with xah-clojure-mode.
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: 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/
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:
- ergonomic shape. (e.g. split or various slant)
- mechanical keys of various types and activation pressure. (easy to press, with good tactile feel)
- firmware based macro recording or remap key. (plug it into any OS and your custom keys works right away, reliably. No more OS based key remapping glitches and hacks)
- driverless programing of keys. (just press the keys to remap or record key macro.)
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.
as for the space-cadget keyboard:
- the key pressure required is really heavy.
- useless space-hogging space bar. (modern ones split it, in 2, or 3, 4 etc, so modifiers is right under your thumbs)
- the modifiers are way on the left. So each time you need to press a modifier, your whole hand moves abut 5 cm.
- the oft touted many modifier keys (control meta super hyper greek top shift) actually creates exponentially less key combinations than a key sequence system with half of the number of modifier keys.
there's a nice video view of space-cadget keyboard by a keyboard switch expert chyrosran22, see Symbolics Space-Cadet Keyboard
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/
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
added to How to Avoid Emacs Pinky
Emacs: Init File Tutorial (updated)
new index page. Emacs Init Setup
Elisp: File and Directory Functions (minor update)
Elisp: Regex Tutorial (updated)
- my emacs experience is
- 1998 to 2009 Mac
- 1999 to 2002 windows,
- 2010 to 2012 windows,
- 2012 to 2017 linux,
- 2017 to now Mac.
- Not counting terminal to remote irix, bsd, hp-ux, solaris, Mac server, linux server.
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)
if you like my work, put $5 at https://www.patreon.com/xahlee
Emacs: Run Current File (more code update. TypeScript part changed)
discussion on reddit https://www.reddit.com/r/emacs/comments/7yprnq/xahflykeys_integration/
post your experience there.
emacs keys how-to
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
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)
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
Buy Xah Emacs Tutorial
The best emacs + emacs lisp tutorial in existence, by far, of depth, breath, and readability. Get my book.
If you have a question, put $5 at patreon and message me.