;; This file: http://user.it.uu.se/~embe8573/conf/emacs-init/my-bibtex.el (require 'super) (require 'bibtex) (require 'mode-line) ;; w3m ISBN: ~/.emacs.d/emacs-init/isbn.el ;; LaTeX: ~/.emacs.d/emacs-init/latex.el (setq bibtex-comment-start "%") (setq bibtex-help-message nil) (setq bibtex-autokey-edit-before-use nil) (setq bibtex-autokey-titleword-length nil) (setq bibtex-autokey-titleword-ignore '("A" "An" "On" "The")) (setq bibtex-autokey-titleword-separator "-") (defun my-bibtex-autokey () (interactive) (bibtex-clean-entry) (bibtex-beginning-of-entry) (search-forward "{") (insert (bibtex-autokey-get-title)) (kill-line) (insert ",") ) (defun bibtex-next-entry () (interactive) (end-of-line) (if (re-search-forward "@" (point-max) t) ; NOERROR (goto-char (match-beginning 0)) (progn (bibtex-prev-entry) (message "This is the last entry.") ))) (defun bibtex-prev-entry () (interactive) (re-search-backward "@" (point-min) t) ) ; NOERROR (defun bibtex-prev-field () (interactive) (beginning-of-line) (when (re-search-backward "=\\|@" (point-min) t) ; NOERROR (let ((eol-point (line-end-position))) (unless (re-search-forward "{" eol-point t) (unless (re-search-forward "[:space:]*[:alphanum:]" eol-point t) (forward-char 2) ))))) (defun bibtex-beginning-of-next-field () (interactive) (let ((start (point))) (beginning-of-line) (if (and (looking-at "@") (re-search-forward "{" (line-end-position)) (< start (1+ (match-beginning 0))) ) (goto-char (match-end 0)) (bibtex-next-field t t) ))) ; BEGIN COMMA (define-key bibtex-mode-map "\C-\M-p" #'bibtex-prev-entry) (define-key bibtex-mode-map "\C-\M-n" #'bibtex-next-entry) (define-key bibtex-mode-map "\t" #'bibtex-beginning-of-next-field) (define-key bibtex-mode-map [backtab] #'bibtex-prev-field) (define-key bibtex-mode-map [C-m] #'my-bibtex-autokey) (define-key bibtex-mode-map "\C-c\C-c" #'compile) ;; (setq bibtex-mode-hook nil) (defun bibtex-mode-hook-f () (lines) (disable-super-global-keys bibtex-mode-map) ) (add-hook 'bibtex-mode-hook #'bibtex-mode-hook-f)