**NOTE: reclaimed from the greyhole in 201103, mostly outdated, needs cleaning up.**
===on macOS===
* http://macemacsjp.sourceforge.jp/package/
* http://macemacsjp.sourceforge.jp/en/
* CarbonEmacs / aquamacs
===source===
get it from here >
% tla register-archive http://sourcecontrol.net/~miles/miles@gnu.org--gnu-2004
% tla get miles@gnu.org--gnu-2004/emacs--cvs-trunk--0 emacs
===elisp programming===
* http://tiny-tools.sourceforge.net/emacs-code-body.html
* info page..
===info & documentation===
* using texi & info > http://www.pchristensen.com/blog/articles/setting-up-and-using-emacs-infomode/
* editing remote wiki pages in emacs see >> http://www.emacswiki.org/cgi-bin/wiki/SimpleWikiEditMode
* more notes/tips > http://www.shellarchive.co.uk/Emacs.html
===packages===
* http://emacs-versor.sourceforge.net/
* emacs package archive > http://tromey.com/elpa/install.html
===scheme interface===
* setting up quack > http://www.cs.huji.ac.il/support/emacs/pllab.html
===bookmarks===
C-x r m mark
C-x r b retrieve
C-x r l list
C-x e annotate
* http://www.emacsblog.org/2007/03/22/bookmark-mania/
* http://www.nongnu.org/bm/
===eshell===
M-x eshell interactive shell like buffer
* C-up / C-down to scroll thru history
* watch out for running shells in subproceses [eg ssh->zsh]
* see .emacs for connecting ls with dired
* how to ->
* r-searhc in history? -> M-r (match previous regexp)
* M-x eshell-completion-help
* info -> emacs info command compare; man-bgproc-sentinel
redirection
echo "hello world" > #
ps wax > #
* shell vars
$1 -> single arg (eg. for alias)
$* -> arg list from commands line
$_ -> 2nd arg of previous command
$- -> previous directory (pwd) -> 'cd =' or 'cd -'
* looping
* see >> http://www.emacswiki.org/cgi-bin/wiki/EshellForLoop
* for f in *.txt {mv $f (concat (file-name-sans-extension f) ".renamed")}
* for f in *.pict {convert $f (concat (file-name-sans-extension f) ".jpeg")}
* for f in *.png {convert -format "jpeg" $f (concat "crushed/" (file-name-sans-extension f) ".jpeg")}
* for f in * {vorbiscomment -w -t "TITLE=New Title" $f}
===search,find, replace===
C-s search forwards
C-r search backwards
M-% Replace
* M-x grep
* in dired
* M-x find-grep-dired > places results of a grep into a dired buufer
* in a dired buffer > 'Q' to query replace marked files
* M-x dired-do-query-replace on muliptle files, in dired mode
* in multiple open files
* M-x ibuffer
* m mark the files you want to change (or t to mark all)
* U regexp replace in all marked
* S save all marked
mulitple file search & replace
- http://atomized.org/2009/05/emacs-nerdery-search-replace-across-files/
===dired===
* mark all 't' to toggle unmarked files
* replace in marked files? 'Q' query replace
* edit/open all marked files
* rename in directory
* mark, and -> '% R ^.*$ http://www.gnu.org/software/emacs/manual/html_node/Transforming-File-Names.html#Transforming%20File%20Names
* deleting
* 'd' to flag, then to delete the flagged files, type `x' (`dired-do-flagged-delete').
===key macros===
C-x ( also F3, begin recording
C-x ) also F4, end
F4 M-x kmacro-call-macro
C-x C-k e edit a macro base on previous keystrokes
* increment number at end of line -> F3 F3 down F4 C-5 F4
* M-x replace-regexp RET ^.*$ RET \&\# RET
===changelog===
* C-x 4 a add an entry to a changelog in the current directory
===keybindings ref.===
Movement
Forward: Backward
C-n 1 line C-p
C-f 1 character C-b
C-v 1 page M-v
C-a line start/end C-e
M-< file start end M->
Editing
C-d clear letter
M-d clear word
C-k cut line
M-k cut sentence
C-y paste
C-@ set mark
C-spc set mark
C-w cut from mark
M-w copy from mark
C-x C-x exchange mark and cursor
C-x C-u Undo!
C-x C-h select all
M-2 M-z zap to next (2nd) character
M-| wc -w word count (shell command on region: 'wc -w')
File manipulation
C-x C-v new
C-x C-f open
C-x C-s save
C-x C-w save as
C-x C-c quit
===Tramp===
* C-x C-f (to open file) then something like /ssh:user@machin.ne:/home/user/file.txt
===Regexps===
* M-x re-builder
===Misc===
C-l redraw screen
C-o insert line
M-q reformat current paragraph
C-x o switch windows
C-x 0 hide current window
C-x 1 maxmize current window
C-x 2 split window horizontally
C-x 3 split window vertically
C-x C-b list all buffers (files) in memory
C-x C-k close current buffer (file)
C-g cancel command
C-h help (repeat C-h for more detail)
===multiuser editing===
* M-x make-frame-on-display
===paredit===
* M-x paredit-mode
* structured edting mode for lisp languages
* see: http://mumble.net/~campbell/emacs/paredit.html
===version control===
* overview of vc mode > http://www.credmp.org/index.php/2007/12/08/emacs-hidden-gems-version-control/
* see also autodarcs & darcssum notes
* magit
===foiding ===
* M-1 C-x $ (aka. M-x set-selective-display) hide body of functions
* C-x $ bring them back
===PGP/GPG===
* using epa & epg
* M-x epa-encrypt-file
* M-x epa-encrypt-region
===TRAMP===
using tramp to connect to remote a host using eshell & sudo
* /ssh:user@example.com
* cd /sudo::
===Internationales===
* manual sections
* International
* Language Environments
* Specify Coding
* Defining Fontsets
* testing
* C-h h (view-hello-file)
* C-x for multibyte characters, coding systems, and input methods
* C-x RET f - to set coding system for buffer
* C-x RET c - set coding system for command
===remembering and forgetting===
* the [[rememberance agent]]
* remember.el (from the emacswiki character)
===random hacks/notes/tips===
* sacha chu -> http://richip.dhs.org/~sachac/notebook/wiki/EmacsHacks.php
* tutorial/intro -> http://www.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html
* dots -> http://members.iinet.net.au/~mtriggs/elisp/dot.emacs
===image ===
* enable with M-x iimage-mode)
* then simply add a url of the image, using the file://
prefix for local imgs (note: wont work via http)
===menus===
* see: emacs FAQ nodes 'Modifying pull-down menus' and ' Deleting menus and menu options'
===random===
* the gnu tour -> http://www.gnu.org/software/emacs/tour/
===fonts / faces / typographica===
fonts and language environment
M-x describe-language-environment
C-x RET c utf-8 RET
M-x describe-fontset
M-x list-character-sets
test ranodm unicode
describe characters at a point with C-u C-x =
===utf-8===
C-x RET r utf-8
see the FAQ
====misc.===
* http://www.borkware.com/quickies/one?topic=emacs
* M-x narrow-to-region - Hides everything not in the current region.
* Toggling read-only mode in a buffer C-X C-Q
* Undo within a given region C-U C-_
* Unnarrowing the region M-x widen
* anything
* anything.el & anything-config.el
* http://bc.tech.coop/blog/070711.html
* ediff & ediff-trees.el
* http://blog.printf.net/articles/2007/10/15/productivity-a-year-on
* http://www.zafar.se/bkz/Articles/EmacsTips
* http://a-nickels-worth.blogspot.com/2007/11/effective-emacs.html
* C-h i m advice RET
* M-/ Auto-complete words in your buffer based on what already exists
* M-x align-regexp
* C-x M-c M-butterfly > http://xkcd.com/378/ (try M-x butterfly in emacs 23)
* C-u M-! ls *.h
* M-x align
* M-x query-replace-regexp-eval
* M-g g is the same as M-x goto-line
* M-x auto-revert-tail-mode is great for tailing log files.
===writing about emacs===
* http://www.surfaceeffect.com/thoughts/emacs
* http://www.tuxdeluxe.org/node/178