Xah Emacs Blog Archive 2013-04

Emacswiki New Site Design

Looks like emacswiki had a new site design. e.g. 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]

emacs community logo
emacs community logo, designed by Daniel Lundin http://www.emacswiki.org/emacs-se/DanielLundin

worst of all, the new site requires JavaScript. Without, you lose some rather significant CSS for readability. This is quite odd.

PS you can go back to the old.

but then, that means you must have cookies on.

Emacs: List All Functions (Updated)

You can use apropos-variable and 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.

[ Tim Pope ] https://twitter.com/tpope,

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 Keys: Syntax

emacs tabbar screenshot 2013-04-20
Emacs tabbar screenshot

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

mark5 heart keyboard jesse 2013-04-19
mark5 heart keyboard jesse . image source © [https://creativecommons.org/licenses/by-nc-sa/2.0/legalcode]

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 (xah-css-mode.el)

updated. Emacs Keys: Super Hyper

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 https://github.com/mlf176f2/ErgoEmacs/tree/master/ergoemacs/ergoemacs-keybindings

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.

and really lots primitive issues. Any of Perl, Python, Ruby, JavaScript, PHP, beats emacs lisp easily.

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

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:

via [Andrew Hyatt https://plus.google.com/101505495157778834572/posts]

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 Ergonomic Keyboard Layouts , 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 page-break-lines-mode by [2013-04-04 Steve Purcell ] ( https://github.com/purcell ). 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: Show Whitespaces]

updated. Emacs Init: Auto Insert Closing Bracket (electric-pair-mode)

updated. Emacs: Command Name Alias

the classic mechanical keyboard. Unicomp keyboard