Category Archives: emacs

gmail integration in emacs

i think it is fun to have emacs act as your mail client. its like when u are busy writing code, and you got to send in some snippets or a quick mail on the issue, you just don’t leave the editor!. so here is how you integrate emacs to access your gmail compose. Note, your mails sent from emacs are also stores in the “sent” label on your gmail!


  1. emacs 23.2
    Use the latest version of emacs, I used emacs23.2 while i made the customization.

    download emacs from

  2. gnutls
    gnutls is the gnu transport layer security library which ensures secure client/server communication over the transport layer. for more info on gnutls

  3. Libgcrypt
    To build gnutls, this package may be required it is provided in the gnutls download link along with gnu tls. One might have to download it separately.

The .authifo File

  1. The authinfo file stores the login information for the mail account. Create the .authinfo file
  2. Insert the following line into the .authinfo file which u can create and place in the ~/. directory

    machine login password

  3. Modify the permissions of the .authinfo file as follows

    chmod go-rwx .authinfo
    chmod u+rw .authinfo

Emacs Init Config (.emacs)

Add this section to your .emacs

;; email setting for my emac
(setq send-mail-function ‘smtpmail-send-it
message-send-mail-function ‘smtpmail-send-it
‘((“” 587 nil nil))
(expand-file-name “~/.authinfo”)
smtpmail-default-smtp-server “”
smtpmail-smtp-server “”
smtpmail-smtp-service 587
smtpmail-debug-info t)

Sending mail
The keybinding for emacs to send mail is

  1. C-x m to compose mail
  2. C-c C-c to send mail when you are done composing the mails




quick .emacs access

when one talks about emacs customization, most of it is going to be editing the .emacs, which is the init file of emacs. emacs loads the init file, by default, stored at the $HOME or the ~/. location in your system. Some times one never knows which is the .emacs that our emacs is using typically when one has been updating his emacs through different versions. the easiest way to find out where your .emacs is to do a C-x C-f ~/.emacs RET   for frequent .emacs users, typing C-x C-f ~/.emacs is also tiring, or basically you might say its redundant.  once a .emacs is edited, one has to load it again to see the change effects. to make it a quick access, you could just create a function which opens a .emacs if not open and loads it if its already open. a keybinding proves very convenient and here is what you add in your .emacs.

(defun open-load-init-emacs ()
“function to open the .emacs in lisp mode and load it”
(interactive);; function be called interactively
(if (equal (buffer-name) “.emacs”)
(eval-buffer) ;; if open, evaluate buffer or load it
(progn (find-file “~/.emacs”) (eval-buffer)))
;; the progn creates a body of commandsfind .emacs, load it
(lisp-mode) ;; enable lisp mode

;; set the key binding to C-x.
(global-set-key “\C-x.” ‘open-load-init-emacs)


git quick start guide

i can almost certainly assert that emacs has been the best piece of open source software, for that matter, the best software i have ever used. the reasons are simple.emacs in itself it simple, it just fits the jobs right, it isn’t troublesome and some one some where has foreseen things which you would want in an editor and when you look out for that one thing you miss badly, you find it and it works awesome. alongside emacs, i started using this piece of open source software git.git is a version control software tool and was implemented by linus torvalds. i can almost certainly assert git has been as wonderful as software as emacs. my tryst with version control starts from using a commercial clearcase to an open source cvs, to a seemingly meaning svn to an ideal git. apparently, any piece of open source software is almost always written by geeks for geeks and there is a lot of “meaningful” documentation underneath. and for many of the “just-get-the-job-done” people, i  think, this is the crux of the problem. there is no “next-click-next-click” tool flow. we all grew up playing “space commander” on “windows” you see.

to make things easier, to get as many people use git instead of svn, i thought, i should list down a quick start guide to moving from svn to git. there are numerous amounts of git tutorials on the net which are far more detailed and far more interesting. so this is by no means undermining the effectiveness and the content of all such tutorials. this is not a detailed user guide, it’s just a quick start guide, which lets you start with changing things.

read on.


time stamping with org-mode calendar

org mode in emacs has this wonderful feature of integrating the calendar in itself. A C-c . key binding in org mode invokes the calendar. you can move around dates with the S- ->(shift right arrow: forward day) and S-<-(shift left arrow: backward day). but this is only in an org-mode buffer, buffers which have a .org extension or buffers where you manually switch on org-mode by M-x org-mode RET.
one can enable this on all types of buffers globally. put this in to your .emacs
(global-set-key “\C-c.” ‘org-time-stamp)
so in any buffer, one can C-c . to get in a date time stamp.