Created
July 10, 2012 09:50
-
-
Save kristianhellquist/3082383 to your computer and use it in GitHub Desktop.
Emacs, copy current file and line number to clipboard
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defun copy-current-line-position-to-clipboard () | |
"Copy current line in file to clipboard as '</path/to/file>:<line-number>'" | |
(interactive) | |
(let ((path-with-line-number | |
(concat (buffer-file-name) ":" (number-to-string (line-number-at-pos))))) | |
(x-select-text path-with-line-number) | |
(message (concat path-with-line-number " copied to clipboard")))) | |
(define-key global-map (kbd "M-l") 'copy-current-line-position-to-clipboard) |
I add option to replace $HOME
with ~
only if C-u
argument was passed:
(defun copy-current-line-position-to-clipboard ()
"Copy current line in file to clipboard as '</path/to/file>:<line-number>'."
(interactive)
(let* ((path (if (equal current-prefix-arg '(4))
(string-replace (getenv "HOME") "~" (buffer-file-name))
(buffer-file-name)))
(path-with-line-number (concat path ":" (number-to-string (line-number-at-pos)))))
(kill-new path-with-line-number)
(message (concat path-with-line-number " copied to clipboard"))))
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I did another minor change to kill the file path and line number in the same format as expected by Org for an external link. Renamed the function to be able to keep both.
This way, you can paste it into an org buffer and
org-open-at-point
on the link will work ...