Emacs: Open File Fast 👎
Page Obsolete
Note: this function xah-open-file-fast
is now obsolete.
In
Emacs 28 (Released 2022-04)
, use bookmark-jump
, and turn on
Emacs: fido-mode (Minibuffer Name Completion)
Open File Fast from Bookmark
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 ((xbookmark (ido-completing-read "Open bookmark:" (mapcar (lambda (x) (car x)) bookmark-alist)))) (find-file (bookmark-get-filename xbookmark))))
Alt+x 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 Keys: Define Key〕
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.
So, now 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〕