diff options
author | Kyle Meyer <kyle@kyleam.com> | 2014-03-04 22:50:10 -0500 |
---|---|---|
committer | Kyle Meyer <kyle@kyleam.com> | 2014-03-04 23:08:19 -0500 |
commit | a1ac29ed56473bd2b492f76588a046a537afbcd7 (patch) | |
tree | 4fdd17497ffb3000ab10200fbed96f053279acf6 | |
parent | dd98bb5e11f04b83f2c72e2e8c3c49e2ecd82100 (diff) | |
download | bog-a1ac29ed56473bd2b492f76588a046a537afbcd7.tar.gz |
ENH: Add functions to go to citekey heading
-rw-r--r-- | README | 2 | ||||
-rw-r--r-- | bog-readme.org | 2 | ||||
-rw-r--r-- | bog.el | 34 |
3 files changed, 37 insertions, 1 deletions
@@ -206,5 +206,7 @@ and taking notes with Org, not on writing research articles with Org. | (define-key bog-map "p" 'bog-find-citekey-pdf) | (define-key bog-map "r" 'bog-rename-staged-pdf-to-citekey) | (define-key bog-map "b" 'bog-find-citekey-bib) + | (define-key bog-map "h" 'bog-goto-citekey-heading-in-buffer) + | (define-key bog-map "H" 'bog-goto-citekey-heading-in-notes) | (define-key bog-map "w" 'bog-search-citekey-on-web) `---- diff --git a/bog-readme.org b/bog-readme.org index 2a78e31..2bd6c99 100644 --- a/bog-readme.org +++ b/bog-readme.org @@ -156,5 +156,7 @@ This can be achieved by placing the code below in your .emacs file. (define-key bog-map "p" 'bog-find-citekey-pdf) (define-key bog-map "r" 'bog-rename-staged-pdf-to-citekey) (define-key bog-map "b" 'bog-find-citekey-bib) + (define-key bog-map "h" 'bog-goto-citekey-heading-in-buffer) + (define-key bog-map "H" 'bog-goto-citekey-heading-in-notes) (define-key bog-map "w" 'bog-search-citekey-on-web) #+end_src @@ -432,7 +432,39 @@ The citekey is split by groups in `bog-citekey-format' and joined by (format bog-web-search-url query))) -;;; Refiling +;;; Notes-related + +(defun bog-goto-citekey-heading-in-buffer () + "Find citekey heading in this buffer. +The citekey will be taken from the text under point if it matches +`bog-citekey-format'." + (interactive) + (let* ((citekey (or (bog-citekey-at-point) + (read-string "Enter citekey: "))) + (pos (org-find-exact-headline-in-buffer citekey nil t))) + (if pos + (progn + (org-mark-ring-push) + (goto-char pos) + (org-show-context)) + (message "Heading for %s not found in buffer" citekey)))) + +(defun bog-goto-citekey-heading-in-notes () + "Find citekey heading in all Bog notes. +All org files in `bog-notes-directory' will be searched. The +citekey will be taken from the text under point if it matches +`bog-citekey-format'." + (interactive) + (let* ((citekey (or (bog-citekey-at-point) + (read-string "Enter citekey: "))) + (marker + (org-find-exact-heading-in-directory citekey bog-notes-directory))) + (if marker + (progn + (switch-to-buffer (marker-buffer marker)) + (goto-char (marker-position marker)) + (org-show-context)) + (message "Heading for %s not found in notes" citekey)))) (defun bog-refile () "Refile heading with note files. |