Emacs Lisp: Open File Path Under Cursor Fast

Buy Xah Emacs Tutorial. Master emacs benefits for life.
, ,

Emacs has a command ffap. When your cursor is on a file path or URL, it'll open the file. This is extremely useful in shell output or in HTML file.

One problem is that it'll prompt to confirm. This is annoying. Also, the command itself doesn't have a key.

You can write a similar command that doesn't need confirmation. Here's the code.

(defun open-file-at-cursor ()
  "Open the file path under cursor.
If there is text selection, uses the text selection for path.
If the path is starts with “http://”, open the URL in browser.
Input path can be {relative, full path, URL}.
This command is similar to `find-file-at-point' but without prompting for confirmation.
"
  (interactive)
  (let ( (path (if (use-region-p)
                   (buffer-substring-no-properties (region-beginning) (region-end))
                 (thing-at-point 'filename) ) ))
    (if (string-match-p "\\`https?://" path)
        (browse-url path)
      (progn ; not starting “http://”
        (if (file-exists-p path)
            (find-file path)
          (if (file-exists-p (concat path ".el"))
              (find-file (concat path ".el"))
            (when (y-or-n-p (format "file doesn't exist: 「%s」. Create?" path) )
              (find-file path )) ) ) ) ) ))

Be sure to give it a easy key. 〔➤ Emacs: How to Define Keys

Like it?
Buy Xah Emacs Tutorial
or share
blog comments powered by Disqus