Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. ;;;;;;;;;;;;;;
  2. ;; Org-mode ;;
  3. ;;;;;;;;;;;;;;
  4.  
  5. (defun get-user-or-password-from-node (type)
  6. "Extract username or password from the current"
  7. (assert (member type '(user pass USER PASS)))
  8. ;; Probably superfluous, given the mode-specific bindings below
  9. (assert (eq (with-current-buffer (current-buffer) major-mode) 'org-mode))
  10. (let ((item (org-entry-get nil "ITEM")))
  11. (if item
  12. (let* ((name (mapconcat #'downcase (list item (symbol-name type)) "-"))
  13. (content (cdr (org-babel-ref-parse (format "_=%s" name)))))
  14. (if content
  15. (string-trim content)
  16. (message "No item of type %s in current node." type)))
  17. (message "Cursor not inside an Org mode node."))))
  18.  
  19. (defun get-user-from-node ()
  20. (interactive)
  21. (let ((item (get-user-or-password-from-node 'user)))
  22. (when item
  23. (kill-new item)
  24. (message "User name copied to kill ring."))))
  25.  
  26. (defun get-password-from-node ()
  27. (interactive)
  28. (let ((item (get-user-or-password-from-node 'pass)))
  29. (when item
  30. (kill-new item)
  31. (message "Password copied to kill ring."))))
  32.  
  33. (define-key org-mode-map (kbd "M-g M-u") 'get-user-from-node)
  34. (define-key org-mode-map (kbd "M-g M-p") 'get-password-from-node)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement