424ada79fe
The first line has to be a complete sentence, because it is displayed in the Customize interface. |
||
---|---|---|
.gitignore | ||
README.md | ||
ido-mini-custom.el | ||
ido-mini-faces.el | ||
ido-mini.el |
README.md
ido-mini
A helm-mini in ido
Ido's -
- smarter sorting
- snappier speed
meets helm-mini's -
- informatively-colored candidates list
- convenience of a single command to switch to buffers, open recentf files, and create new buffers.
Plus, some improvements of its own -
- If a recentf entry is already visited by a buffer, put the entry at the end of the (recentf?) candidates list.
- (planned) tweak
ido-mini-use-paths
to search and display not just buffer names but also their file paths, wherever applicable. - (planned) show documentation of functions from smex, akin to C-j in helm-M-x
Installation
ido-mini
requires dash.el and ido
.
ido-vertical-mode
can be used to view candidates vertically.
ido-mini
assumes you use Emacs' built-in recentf-mode
. If not, simply add (recentf-mode)
to your init.
Key customization
IMPORTANT
In Ido, key customization is sadly NOT done the usual way. Instead,
you write a function to change keybindings (you want to use
ido-completion-map
) and add that to `ido-setup-hook'. See section
'Customization' in (find-library "ido")
For fuzzy matching, install the flex-ido package. It's not always useful, you can define a command to toggle it -
(defun my/ido-toggle-flex ()
"Toggle the value of `ido-enable-flex-matching'."
(interactive)
(setq flx-ido-mode (not flx-ido-mode)))
and bind it to a key.
Known issues
flx-ido and recent versions of ido override ido-mini's candidate coloring. As of now it's a choice between flx-ido/ido's matched string highlighting, and ido-mini's informatively colored candidates. If you'd rather have the latter, add (setq flx-ido-use-faces nil)
and (setq ido-use-faces nil)
to your init respectively.
TODO
- When called twice in succession, quit ido-mini
- color the matched substring in the candidates?
- store only search terms in input history, not the selected buffer names/file paths
- Mimic exact C-j (
ido-select-text
) and RET behaviour (ido-exit-minibuffer
) - What if we search for files (perhaps only in user-specified directories, when provided) when there are no matches in the buffer list as well as in recentf?
- Add animated
- Add indicator if flx-ido-mode is enabled
- Add tests
- Don't fail if recentf-list is nil
Contributions and contact
Feedback and MRs very welcome. 🙂
Contact the creator and other Emacs users in the Emacs room on the Jabber network - xmpp:emacs@salas.suchat.org?join (web chat)
(For help in getting started with Jabber, click here)
License
ido-mini is released under your choice of CC0, Unlicense, and WTFPL.
Thanks
wilfredh for the initial code that got me started - https://gist.github.com/Wilfred/31e8e0b24e3820c24850920444dd941d
wasamasa, bpalmer and #emacs in general for all their help and support
fiete for testing