Emacs: Open File Fast 🚀
Note: this function
xah-open-file-fast is now obsolete. In emacs 28, use
bookmark-jump, and turn on
fido-vertical-mode [see Emacs: icomplete, Name Completion]
Here's a command that lets you open file fast by a fuzzy completion on file names in your bookmark.
First, you need to add files you use frequently to emacs bookmark. [see Emacs: Bookmark]
Put the following in your emacs init file.
(defun xah-open-file-fast () "Prompt to open a file from bookmark `bookmark-bmenu-list'. This command is similar to `bookmark-jump', but use `ido-mode' interface, and ignore cursor position in bookmark. URL `http://xahlee.info/emacs/emacs/emacs_hotkey_open_file_fast.html' Version 2013-01-01 2022-05-16" (interactive) (require 'ido) (require 'bookmark) (bookmark-maybe-load-default-file) (let (($this-bookmark (ido-completing-read "Open bookmark:" (mapcar (lambda ($x) (car $x)) bookmark-alist)))) (find-file (bookmark-get-filename $this-bookmark))))
xah-open-file-fast, then it will prompt with real-time name completion as you type.
Give this command a easy key, such as F8. [see Emacs: Define Keybinding]
For best efficiency, add a unique digit or 2 letter sequence in front of each bookmark file name you use frequently, so that opening a file is just 3 keystrokes, for example,
emacs blog can be
eb emacs blog, so you can just type F8 e b Enter to open it.
Why ignore bookmarked cursor position?
- emacs bookmark also records cursor position.
- when you open bookmark with
bookmark-jump, it goes to the bookmarked cursor position.
- However, that may not be what you want. You want the last cursor position when you closed the file.
- For example, when the file is a blog. You constantly edit it. The bookmarked position will be off. So, each time you open it with bookmark, you'll have to move cursor back to a proper position. Annoying.
xah-open-file-fast ignores the position in bookmark.
Note, you should have
save-place-mode on. It saves last cursor position.
[see Emacs Init: Save Cursor Position]