Xah Emacs Blog Archive 2016-06

Emacs and Unicode

reddit asks: https://www.reddit.com/r/emacs/comments/4q8abm/how_to_solve_the_problem_of_emacs_displaying/

solution:

emacs unicode symbola font 2016-06-28 36662
πŸ•πŸŒπŸ°πŸΊ

Download symbola here Download Free Unicode Fonts

unicode search cake beer 2016-06-28 75662
Unicode search here: Unicode Search πŸ˜„

Emacs: Switch Buffer (updated. See new screenshot of ido vertical)

Emacs's Mode Line Suggestions, 2008. Emacs Mode Line Problem

emacs original modeline debate, 2008 https://lists.gnu.org/archive/html/help-gnu-emacs/2008-11/threads.html#00494

ELisp: Call Function in Replacement String (minor rewrite)

That's one of the first elisp tutorial, written back in 2007. Was a new feature too, for emacs 22, wow, exciting.

Emacs: Run Elisp Code When File Opens (Persistent Highlight) (repost)

Emacs: Terminal vs Graphical User Interface (updated)

Emacs: What is Minor Mode (new)

Emacs Workflow: Fullscreen vs Multiple Frames (updated)

11 Years of Writing About Emacs

Emacs: Save Split Windows Configuration (updated.)

There are about 6 hundred pages of tutorials on this site. About 140 pages are emacs tutotial, 100 are elisp language tutorial, 70 are elisp commands or scripts tutorial, and the rest 300 are tutorials on keybinding, essays on keyboard, on Repetitive Strain Injury, my packages, bug reports/records/fixes, emacs modernization suggestions, commentaries and essays on emacs, emacs community, etc, such as:

I update them about daily. What's to update? lots of things.

I started to blog about emacs back in 2005. Now, it's 11 years.

xah emacs tutorial 2006 screenshot
here's my emacs tutorial back in 2006 Feb. https://web.archive.org/web/20060221050036/http://xahlee.org/emacs/emacs.html

What Tools Are Used to Build This Site?

emacs, of course. The following i use daily, and are the main tools to create this site:

and lots of personal emacs commands in my init file.

I basically write it manually, or semi-manually, with lots of help of custom emacs commands. In the very beginning, every html tag is typed manually, char by char. Now, set of tags are inserted by emacs command on demand.

Though, i must say, I think my system is faster, less keystrokes, more flexible, more efficient β€” in a scientifically verifiable way, than any content management system or publishing system out there. org, markdown, wordpress, jekyll, zen, what-have-you.

(actually, the above is not too surprising. Because, if you know a subject well, deeply customized system is far more efficient than any off-the-shelf system, and also, you have precise control.)

Emacs: Split Windows (updated. Improved writing, moved resize command here.)

elfeed is a superb rss/atom reader. Now it supports xml:base (that is, relative links), and also uses curl to fetch, so it's much faster.

get it from melpa or at https://github.com/skeeto/elfeed

To subscribe my blogs, put the following in your init.

(when (fboundp 'elfeed)
  (setq elfeed-feeds
        '(
          "http://ergoemacs.org/emacs/blog.xml"
          "http://xahlee.info/comp/blog.xml"
          "http://xahlee.info/js/blog.xml"
          "http://xahlee.info/math/blog.xml"
          "http://wordyenglish.com/lit/blog.xml"
          )))

then call elfeed.

Emacs: Open Last Closed File πŸš€ (updated code)

Emacs: Next/Previous User Buffer πŸš€ (updated code. Now, there's a function by itself xah-user-buffer-q that determines what's user buffer. You can override it.)

Emacs: Copy Current Line If No Selection πŸš€ (code updated. Press the copy key will keep append-copy next line. (fixed a bug))

another Repetitive Strain Injury story

β€œIn the end my RSI became so serious that I had hard time lifting a pack of water.”

[How Kinesis Advantage keyboard changed my life By Damiano Venturin. At https://medium.com/@damko/how-kinesis-advantage-keyboard-changed-my-life-f80a84c559a0 , accessed on 2016-06-17 ]

see also, alternatives to kinesis. Best Keyboards for Emacs

Emacs: Jump to Previous Position (updated. Simpler, easier to follow.)

emacs M-x customize, defcustom, good or bad?

ClΓ©ment Pit-Claudel gave a great answer about why pulling stuff out of custom-set-variables to setq may not work. See comment at Emacs: Stop Cursor Going into Minibuffer Prompt#comment-2734992432

also see comment by bhyde at Emacs's Customization Tutorial#comment-2663524352

the bottom line is that, if you pull out lines from custom-set-variables and change it to setq, it may not work.

i wasn't too pleased about this. This means, the defcustom is more complex than otherwise acting as defvar with a User Interface.

on this subject, there's the question about whether emacs's customize system is a good thing. (it was controversial). I think it's a mixed bag.

There's elisp, which is the core of all emacs and all customization. Why should we add a layer? Now, there are 2 ways to do the same thing. Also, the Graphical User Interface layer isn't complete, as not all customization can be done with it. (e.g. hooks, which is rather quite common and basic.) On the other hand, it does provide a explicit structure to declare what variables are user preference related, and with it, a text based graphical user interface.

but, it isn't a full system, and is not required nor enforced in packages. The consequence of this is that, there's inconsistency.

in general, coding in elisp is full of slack. There's no API, nothing is enforced, and you can do something low level or high level or whichever way. This is intentional from rms. XEmacs had packages since 1991 or so. rms refused it, till recently. I think rms believes this shapelessness helps propagate FSF free software. As in, it forces people to dig into code, and thwarts black box API.

Emacs: M-x customize Tutorial (major update)

Emacs Init: Stop Cursor Going into Minibuffer Prompt (updated. The previous code didn't work for emacs 25.x for some reason.)

emacs custom-set-variables vs setq

Something strange is going on. It seems, pulling things out of the custom-set-variables no longer works?

Here's the test. Put the following in your init, nothing but just the following:

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(minibuffer-prompt-properties
   (quote
    (read-only t cursor-intangible t face minibuffer-prompt))))

Restart emacs. Then, Alt+x query-replace and hold left arrow key to see if cursor went over the prompt. Cursor will not move into the prompt.

Now, delete that init, and use the following instead:

(setq minibuffer-prompt-properties (quote (read-only t cursor-intangible t face minibuffer-prompt)))

Restart emacs.

But now, it doesn't work?

This is emacs GNU Emacs 25.0.90.1

please comment and let me know what happens on your machine, and emacs version. M-x version.

comment on blogger above, or ping me on twitter. thx.

Keyboard Page Up/Down Keys

new index pages.

Emacs Lisp Examples

Emacs: Bind Number Pad Keys (minor update)

xah emacs losssage xah fly keys 2016-06-10
emacs 25 M-x view-lossage Ctrl+h l + Xah Fly Keys

lisp apostrophe quote '(a b c) came from MacLisp