Xah Emacs Blog Archive 2013-04
Emacswiki New Site Design
Looks like emacswiki had a new site design. For example: http://www.emacswiki.org/emacs/DiredPlus
the new seems to be a downgrade for me.
now it's black on gray. Parts are gray on gray. Less readable than before. [see Web Design: Say No to Grey Text on White Background]
The older logo is much better. It was a real logo, with elements of art. The new, is just plain letters. [see Purpose of Logo and Principle of Logo Design]
PS you can go back to the old.
- http://www.emacswiki.org/emacs/2013-04-24?bootstrap=0 old
- http://www.emacswiki.org/emacs/2013-04-24?bootstrap=1 new
but then, that means you must have cookies on.
Elisp: Search Documentation (Updated)
You can use
apropos-value to search.
am running ask emacs Tuesday, on Google Plus and twitter. Me at your service.
also, updated. Elisp: Get universal-argument
Emacs: Power of Icicles
lol. this is a gem.
In which Richard Stallman learns what “tabs” are and contemplates adding them to Emacs http://lists.gnu.org/archive/html/emacs-devel/2008-03/msg02254.html
Keyboard Master: One Thousand Function Keys
XML Nested Syntax vs Lisp Nested Syntax
updated. All the ways you can set keys. Emacs is all about keys. Set any command to any key you want. Set one key today! Emacs Keybinding Syntax
updated. Emacs: Init File Tutorial. Thanks to Matthew L Fidler [https://github.com/mattfidler]
Sunday Excursion. 2 hands pen-spinning, by yours truely. The keyboard at the bottom is the Truly Ergonomic Keyboard.
Xah Lee Pen Spinning
yesterday i wrote about a bug. Now there's solution. See: Emacs Bug: global-linum-mode Freeze Emacs on Big Image Files
new index page. All about Emacs Keybinding, Keyboard, Articles Index
more fancy keyboards
updated. Evaluate Emacs Lisp Code. thanks to jcs.
Emacs Bug: global-linum-mode Freeze Emacs on Big Image Files
Emacs: Xah CSS Mode
updated. Emacs: How to Bind Super Hyper Keys
ErgoEmacs Keybinding Movement Feature
Matt has done a lot to ErgoEmacs keybinding. I haven't kept up with the features, but i'll blog as i learn. Here's one.
When you use any of the cursor movement keys, you can keep pressing movement key without holding down the Alt. For example, on QWERTY layout, press Alt+j j, it'll move cursor to the left twice. You can turn this off by putting this in your init:
;; turn off ErgoEmacs repeat move without holding Alt feature (setq ergoemacs-repeat-movement-commands 'nil) ;; set ErgoEmacs repeat movement. Example, on QWERTY, once you press any of 【Alt+i】 or 【Alt+j】 or 【Alt+k】 or 【Alt+l】, then any i j k l key will move cursor, no need to hold Alt anymore. Type any other key automatically exit. (setq ergoemacs-repeat-movement-commands 'all) ;; set ErgoEmacs repeat move without holding Alt, but one key afterward. Example, on QWERTY, 【Alt+j j】 will move left twice (setq ergoemacs-repeat-movement-commands 'single)
You can read more about features, settings, on his repo at
may be offensive. FSF Spread FUD on Microsoft
emacs lisp is so primitive. You have
sort, but it can't sort vector, only list.
also, you can't have literals for hash.
the only hope for this to improve is waiting for Guile Scheme Lisp to takeover Elisp. The talk has been on for perhaps a decade now. Last hopeful news i heard is about 2 years ago.
Emacs: Zippy the Pinhead
more update. Emacs: Easy Ctrl+x for Dvorak Layout
updated. Computer Keyboard Design Flaws
for those of you who prefer running emacs in max/fullscreen. Emacs: Save Split Windows Configuration
for those of you who prefer multiple non-fullscreen windows. Emacs: Full-Screen vs Multiple Window
Emacs 24.3 Elisp Macro Speedup
emacs 24.3 made elisp code much faster. Quote:
** Emacs tries to macroexpand interpreted (non-compiled) files during load.
This can significantly speed up execution of non-byte-compiled code, but can also bump into previously unnoticed cyclic dependencies. These are generally harmless: they will simply cause the macro calls to be left for later expansion (as before), but will result in a warning (“Eager macro-expansion skipped due to cycle”) describing the cycle. You may wish to restructure your code so this does not happen.
Dmitry Gutov wrote a nice article that shows the speed increase: [Emacs 24.3's Killer Feature: Eager Macro-Expansion By Dmitry Gutov. At http://dgutov.github.io/blog/2013/04/07/emacs-24-dot-3-s-killer-feature-eager-macro-expansion/ , accessed on 2013-04-07 ]
It's a bit deep. If you code elisp, you should read it. If you don't code elisp, here's the gist:
- Before emacs 23.3, byte-compiled file is about 6 or 10 times faster for loading and also execution
- After emacs 23.3, byte-compiled seems just twice as fast.
via [Andrew Hyatt
Emacs 24 Copy Directory Change
rewrote a previous article. Now on its own. This is useful for keyboard freaks only. Ban Key Chords. See also: Keyboard Shortcut Design: Repeatable vs Non-Repeatable Commands and Keys.
added this to my emacs. You type a comma, and a space is automatically added.
(global-set-key (kbd ",") (lambda() (interactive) (insert ", ")))
it'll take a while to get used to.
idea pilfered from [Minimizing Keystrokes Required by Punctuation By Eric Crosson. At http://ericscrosson.wordpress.com/2013/04/05/minimizing-keystrokes-required-by-punctuation/ , accessed on 2013-04-06 ]
warning: he's saying nice things about me.
in the name of uber efficiency: Emacs Keybinding Efficiency: Page Up/Down and Pigeon Hole Principle
worth repeating. Tips on Long Term Emacs Productivity
here's ErgoEmacs setup tutorial, by Sindikat: [ErgoEmacs tutorial By Sindikat. At http://abstractnonsense.net/2013/ergoemacs-tutorial/ , accessed on 2013-04-06 ]
new version of ErgoEmacs Keybinding is out again. I'm happy to report that the current maintainer Matthew L Fidler [https://github.com/mattfidler] has adopted a idea i suggested. Now, “all” of chorded keys has a non-chorded replacement! You can press them by pressing ▤ Menu key first. Here's the current keys:
;; QWERTY used to indicate key position ("<menu> g" keyboard-quit "Quit") ("<menu> j" ergoemacs-ctl-c "Ctl-c") ("<menu> u" ergoemacs-ctl-c-unchorded "Ctl-c*") ("<menu> f" ergoemacs-ctl-x "Ctl-x") ("<menu> h" ergoemacs-ctl-h "Ctl-h") ("<menu> y" ergoemacs-ctl-h-unchorded "Ctl-h*") ("<menu> m" ergoemacs-ctl-c-ctl-c "C-c C-c") ("<menu> SPC" set-mark-command "Set Mark")
The keys are position based, and QWERTY layout is used to indicate their position. That means, doesn't matter whether you are using Dvorak, Colemak, Workman, Bépo, …, you can just look at the labels on your keyboard for the right key. The keys may not be final. But Matt is the maintainer now, so, you'd have to ask him, for suggestions or code push. Also, i haven't been keeping up my documentation of it. I hope to fix it down the road. Another new layout support is Persian standard layout, contributed by Shahin Azad. (it also supports Workman layout. and quite a few others now. You can see all layout supported in the menu “ErgoEmacs”)
Matt also created a emacswiki page at http://www.emacswiki.org/emacs/ErgoemacsKeybindings,
so you can post there, ask for help, or help make it better. (Matt says that don't use the emacswiki for question, because it's automatically generated from info file.)
for why about the non-chorded keys, you might get a good idea from my notes here: The Roadmap to Completely Replace Emacs Key System, Part 2
i think this is really great, because for years i've been thinking how to resolve the cua-mode and emacs C-x issue. Now, i think this is the answer. The implementation is simple, and we don't need the complex hack of cua-mode anymore, and the traditional C-x are still there if one wanted, and the whole system is one step more efficient and ergonomic, even beats vi-like modes. (the main issue of vi's modal ways is that you need to constantly switch modes.)
there's a great
It displays FORM FEED char (^L) by a horizontal line.
The package is on MELPA. Alt+x
list-packages to install.
[see Emacs: Install Package with ELPA/MELPA]
After you install, you need to specify which major modes it should activate. Like this:
(setq page-break-lines-modes (quote (emacs-lisp-mode xah-elisp-mode compilation-mode fundamental-mode text-mode org-mode ruby-mode python-mode xah-html-mode html-mode nxml-mode)) )
this package is great because there are few others but interfere with
whitespace-mode settings for some reason. [see Emacs: Make Whitespaces Visible]
updated. Emacs: Auto Brackets electric-pair-mode
updated. Emacs: Use Alias for Fast M-x
the classic mechanical keyboard. Unicomp keyboard