Category Archives: pimpmyemacs

Eshell redirection

Mike Mattie has this awesome Emacs tip for
Eshell: redirecting to buffers and Lisp symbols!

To overwrite buffer “foo”:

ls > #<buffer foo>

To append to buffer “foo”:

ls >> #<buffer foo>

To insert at point in buffer “foo”:

ls >>> #<buffer foo>

To redirect to a Lisp symbol:

ls >#'some-variable

I had no idea Emacs could do that. Cool!

On Technorati: ,

E-Mail from Mike Mattie

Random Emacs symbol: ps-extend-face-list – Function: Extend face in ALIST-SYM.

Thanks to David Ongaro for catching that!

Highrise HQ

I took a look at Highrise HQ following a recommendation by Winston Damarillo. It’s a web-based contact relationship manager (CRM) by 37signals, so it’s all pretty and Web 2.0-y.

Looking further, I’m surprised at how much my hand-hacked Emacs-based CRM can do:

Review a colleague’s notes before calling her contact at the printer
I do this with BBDB. Not only that, but my system automatically inserts notes into any e-mail I compose to that person.
See all the follow-ups scheduled for this week
Got that with Planner
Set a reminder to write your client a thank-you note next Friday
Ditto with Planner
Keep all important emails from a customer together on one page
I suppose I could do that with mail search. There must be a better way, though…
Schedule a follow-up sales call with a lead in 30 days
Review all communications with your investors
I haven’t figured out how to do this one yet. Mail folders help. Maybe I can hook up BBDB with my mail search engine…
Build a list of all the designers your company has hired in the past
Can do this with tags. In fact, I can build a list of people who are tagged with A but not B and whom I’ve talked to in the last year… =)
Enter notes from a call with a potential client
Enter contact info for people you met at the conference this week
Generate a list of contractors you worked with last year
See all the people your company knows at The New York Times
Regexp search, easy enough.

Highrise: you can share your notes with other people. I don’t need that yet, and I don’t think I’ll need it any time soon.

Emacs: I can use it offline. That totally rocks. Also, I can do lots
of complicated batch operations, such as composing form letters that
include conditional text, randomized text, and personalized
signatures. I can add arbitrary data fields and write code to do all
sorts of things. I don’t need Firefox or a mouse.

You know, if I just figured out how to translate my setup to the Web,
I’d make a killing. ;)

I’m going to steal the idea of a pretty view, and I’m going to make it
easier to see all the tasks associated with a person instead of
relying on my daily view. I also need to make it easier to mark
something as for-followup. Hmmm… But yeah, not too bad, not too

On Technorati:

Random Emacs symbol: gnus-server-opened – Function: Check whether a connection to GNUS-COMMAND-METHOD has been opened. – Face: Face used for displaying OPENED servers

Emacs tidbit: DVI and LaTeX interaction

Skimming the help.gnu.emacs newsgroup can turn up all sorts of amazing
tidbits. For example, I occasionally write papers using the LaTeX
markup language for scientific documents. This allows me to produce
professional-quality typeset papers, particularly when equations are
involved. (I used that *so* many times in university!)

I just found out that you can click on the typeset document (the DVI)
and jump to the source code. Here’s what David wrote on help.gnu.emacs:

That’s easy. This feature is called forward and inverse search. It’s
explained in the AucTeX manual. If you use auctex just hit C-c C-t C-s
(I don’t know if this also works within the build-in tex mode). This
enables the TeX-source-specials. With the source-specials on, Emacs
will start xdvi with further options. xdvi will start displaying the
page where the point is set in Emacs (forward search). When you click
any line in xdvi simultaneously pressing Ctrl you return to Emacs with
the point on the corresponding paragraph. This works also with other
dvi viewers, but you have to configure them to use emacs server for
inverse search.


On Technorati: ,

Random Emacs symbol: default-fringes-outside-margins – Variable: Default value of `fringes-outside-margins’ for buffers that don’t override it.

BBDB: Print birthdates

This snippet goes through all the records in my Big Brother Database,
prints out birthdate and a link to the record, and then sorts the

(defun sacha/bbdb-insert-birthdates ()
  "Insert a list of birthdates, sorted by month.
For best effect, dates should be of the form"
      (lambda (rec)
        (when (bbdb-record-getprop rec 'birthdate)
           (if (string-match "..\\...$" (bbdb-record-getprop rec 'birthdate))
               (match-string 0 (bbdb-record-getprop rec 'birthdate))
             (bbdb-record-getprop rec 'birthdate))
           " | "
            (concat "bbdb://"
                     " " "." (bbdb-record-name rec)))
            (bbdb-record-name rec))
     (sort-lines nil (point-min) (point-max))

On Technorati: , , ,

Random Emacs symbol: find-tag-noselect – Command: Find tag (in current tags table) whose name contains TAGNAME.

A year in review: Emacs

Over the last five months, I’ve added all sorts of code to my Emacs to
make it a contact relationship management system that fills the
salespeople I know with envy. =)

  1. 2006.07.20#1: Emacs BBDB magic: Greeting people with nicknames
  2. 2006.07.24#1: Emacs: Automating the insertion of text
  3. 2006.08.10#3: Sharing the link love
  4. 2006.08.30#3: My Big Brother Database and social networking sites
  5. 2006.09.01#2: Emacs: Keep track of messages sent
  6. 2006.09.01#3: More Emacs coolness: List of contacts
  7. 2006.09.01#4: More Emacs fun: Composing mail to everyone with notes
  8. 2006.09.02#1: More Emacs goodness: Refresh your memory when you e-mail using notes from BBDB
  9. 2006.09.15#2: Emacs: Changing the font size on the fly
  10. 2006.09.15#3: Emacs clinic at the Linux Caffe
  11. 2006.09.28#2: Emacs + LinkedIn: Another totally idiosyncratic bit of code
  12. 2006.09.28#3: Emacs: Show only people whom I haven’t pinged since…
  13. 2006.09.28#4: Emacs: BBDB rapid serial visualization
  14. 2006.09.28#5: Emacs: Animation in presentations
  15. 2006.09.29#2: Emacs BBDB: Filtering tags with the power of lambda expressions
  16. 2006.09.29#8: Emacs BBDB: Prioritize exact matches
  17. 2006.10.02#10: Crazy idea for Emacs: Random Emacs taglines
  18. 2006.10.02#11: Crazy Emacs: Personalized signatures with random taglines
  19. 2006.10.04#1: Developing a better sense of time
  20. 2006.10.04#2: Emacs Gnus hack: Prioritize based on the number of recipients
  21. 2006.10.11#4: Emacs: Hideshow
  22. 2006.10.12#3: Emacs: Quick way to collect references
  23. 2006.10.12#4: Emacs and a British voice
  24. 2006.10.23#1: Excited about my DemoCamp presentation!
  25. 2006.10.27#4: Keeping track of the age of messages
  26. 2006.11.02#2: Contact report
  27. 2006.12.12#2: Personal contact relationship management

On Technorati: ,

Random Emacs symbol: browse-url-firefox-arguments – Variable: *A list of strings to pass to Firefox as arguments.