I switched from XEmacs to GNU Emacs quite some
time ago, so my packages usually are better tested there.
Currently I use Emacs version:
GNU Emacs 22.0.92.1 (i386-apple-darwin8.8.1, Carbon Version 1.6.0) of 2007-01-06
Previously, I used:
GNU Emacs 22.0.50.1 (i386-apple-darwin8.7.1) of 2006-08-19 GNU Emacs 22.0.50.1 (i486-pc-linux-gnu, GTK+ Version 2.8.17) of 2006-05-05, modified by Debian GNU Emacs 21.3.50.1 (i686-pc-linux-gnu, X toolkit) of 2002-12-20
Before that, I did not keep track. The first Emacs which I bothered to customize was probably some XEmacs on Solaris, in 1995. Before that, I used to use MicroEmacs on Amiga, occasionally. It was not very Emacsy, though.
mwe-screen-server.tar.gz, a handy hack for people using screen and emacsclient/gnuclient. If possible, the screen window switches to an Emacs running inside, and back to the application calling the editor.
It behaves sanely in a window environment. Instead of calling Emacs directly, an small script is called which handles starting of a screen, attached, detached after editing, etc. It works very nice with Mutt running inside screen.
To attach to Emacs, gnuclient is used, because emacsclient was not powerful enough at the time of writing. This functionality actually belongs inside of emacsclient. When the multi-tty-support branch is stable, this package will become obsolete.
In case you wonder: No, this is not my usual Emacs look. I
use the color-theme
package, and from that a modified color-theme-billw
(dark background).
Inspired by Bill
Clagett's weblog entry (he called it an interesting
failure
, and I just wanted to verify it...):
Aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae. The rset can be a total mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.
(defun mwe:skeleton-pair-insert-maybe (&optional arg) (interactive "P") (save-excursion (skeleton-pair-insert-maybe arg)) (forward-char))
I like this behavior more than the default. Cursor is placed inside
the parentheses, so I can mark expressions by repeatedly pressing
C-SPC and then ( to enclose the whole block with
parentheses. Fitting right in there is the following
mwe:up-list-or-insert
, which I have bound to ).
(defun mwe:up-list-or-insert (&optional arg) "Skip over a closing parenthesis, unless no matching opening parenthesis is found.In this case insert one." (interactive "p") (condition-case nil (up-list arg) (error (insert-char (logand last-command-char 255) 1))))
I have my own filling functions which I use instead of the defaults, whenever I edit text which is put into a versioning system like CVS or RCS. It is most effective if every sentence starts on a new line. I also try to persuade my co-writers to do the same. Diffs are much more readable, if the real change is not drowned in tons of merely refilled paragraphs.
;; courtesy of Joe Fineman (via Luca de Alfaro) (defun mwe:fill-sentence () (interactive) (save-excursion (unless (bolp) (forward-sentence -1)) (let ((beg (point))) (forward-sentence) (fill-region-as-paragraph beg (point))))) (defun mwe:text-fill-paragraph (fill-type) (interactive "*p") (case fill-type (1 (let ((filladapt-activated (and (fboundp 'filladapt-mode) filladapt-mode))) (unwind-protect (progn (if filladapt-activated (turn-off-filladapt-mode)) (mwe:fill-sentence)) (if filladapt-activated (turn-on-filladapt-mode))))) (2 (fill-paragraph t)) (t (fill-paragraph nil))))
(transient-mark-mode 1)
Zhivago | paakku: your code will produce a circular linked list paakku | Zhivago: No it will not. Zhivago | paakku: what are you trying to achieve? paakku | Zhivago: I can't remember. Zhivago | oops :0 -- #lisp