Emacs: Open File Fast
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://ergoemacs.org/emacs/emacs_hotkey_open_file_fast.html' Version 2019-02-26" (interactive) (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)) ;; (bookmark-jump $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: How to Define Keys]
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.
;; remember cursor position (if (version< emacs-version "25.0") (progn (require 'saveplace) (setq-default save-place t)) (save-place-mode 1))