emacsgnusbbdb

Insert current entry into BBDB


I've read that "The easiest way to insert an entry for a person into BBDB is to press : (colon) in the Summary buffer when a message from him is the selected one. If the person is in the database already, nothing happens; otherwise, Emacs asks you if you want to insert him into the database."

That does not work for me, I guess because I'm using BBDB 3.

EDIT: ':' runs the command 'bbdb-mua-display-sender'.

Is there a workaround to this?


Solution

  • This is what I use in my .emacs to work with BBDB-3 in Gnus, it will give this functionality to the ; key:

    (require 'bbdb-autoloads)
    (require 'bbdb)
    
    ;; initialization
    (bbdb-initialize 'gnus 'message)
    (bbdb-mua-auto-update-init 'gnus 'message)
    
    ;; size of the bbdb popup
    (setq bbdb-pop-up-window-size 0.15)
    (setq bbdb-mua-pop-up-window-size 0.15)
    
    ;; What do we do when invoking bbdb interactively
    (setq bbdb-mua-update-interactive-p '(query . create))
    
    ;; Make sure we look at every address in a message and not only the
    ;; first one
    (setq bbdb-message-all-addresses t)
    
    ;; use ; on a message to invoke bbdb interactively
    (add-hook
     'gnus-summary-mode-hook
     (lambda ()
        (define-key gnus-summary-mode-map (kbd ";") 'bbdb-mua-edit-field)))
    

    I got this information from somewhere on the net, but can't quite locate where just now; maybe this can set you on the correct path?