요약: Updates for lusty-explorer.el v2.4
> Version 2.4:
> * Add <code>defcustom lusty-idle-seconds-per-refresh</code> - wait for key presses in <code>lusty-file-explorer</code> for (by default) 50 milliseconds before initiating match window updates. Makes things more manageable for fast typers navigating directories having many thousands of files. Thanks to René Kyllingstad.
> * Consider buffer use order when determining the order of buffer matches in the window. By default, has a 10% effect on weighting. Fiddle with <code>lusty-buffer-MRU-contribution</code>.
> * Like <code>iswitchb</code>, give match priority to buffers not currently visible.
< * For iswitchb congruity, <code>C-s</code>/<code>C-r</code>: select next/previous match.
> * For <code>iswitchb</code> congruity, <code>C-s</code>/<code>C-r</code>: select next/previous match.
< = Discussion =
< Release 2.3 introduced:
< * Buffer explorer: put current buffer at end of matches list for more intuitive switching.
< Like iswitchb it should put all buffers on the current frame at the end of the matches.
< * Buffer explorer: sort first by fuzzy matching score, then by most recently used.
< The fuzzy matching score is a float, resulting from many calculations. Getting duplicate scores is nigh impossible.
< [new:sjbach:2010-07-05 16:31 UTC]
< Actually, duplicate scores are common in practice. I tested the float comparisons with various epsilons and decided none were needed.
< In my usage the last couple days about 3% of the comparisons had equal fuzzy matching score, so it's indeed not that uncommon. Though it still means that most-recently-used has little influence on the sorting.
< Bouncing between 2/3 buffers I often type the file extension, for example C-x b .py RET. This worked well with iswitchb, less with lusty explorer for obvious reasons.
< Another approach would be to turn the most-recently-used index into a number between 0 and 1, and multiply the fuzzy matching score with it to get the sorting index. Finding a good formula for calculating that number probably requires some experimentation.
< [new:sjbach:2010-07-05 16:31 UTC]
< But on the other hand, this sounds like a neat idea!
< * Buffer explorer: put current buffer at end of matches list for more intuitive switching
< This is not done when fuzzy matching is used, so the buffer explorer will suggest switching to the current buffer if it has a higher score than the buffer you'd like to switch to.
< [new:sjbach:2010-07-17 18:14 UTC]
< I have these implemented in devhead:
< * Put all visible buffers at the end of the buffer list (like iswitchb).
< * Turn MRU order into a factor in the scoring algorithm.
< Feel free to take a look. I'll put out a release once I've played with them for a while.
> = Discussion =
LustyExplorer is a fast and responsive way to manage files and buffers. It includes both a filesystem explorer and a buffer switcher through a common interface.
find-file crossed with
iswitchb or InteractivelyDoThings, but with a larger and more easily readable dedicated window for matches instead of the minibuffer.
Here's a 3.4 MB animated gif showing it in action (Note: 2.0+ uses fuzzy matching instead of tab completion)
After copying the file into your load-path, put this in your .emacs:
Launch the explorer with one of these commands:
M-x lusty-file-explorer M-x lusty-buffer-explorer
As you type a name, the list updates using a fuzzy matching algorithm. Press
TAB to select the highlighted match, or
C-p to highlight the next/previous match
defcustom lusty-idle-seconds-per-refresh- wait for key presses in
lusty-file-explorerfor (by default) 50 milliseconds before initiating match window updates. Makes things more manageable for fast typers navigating directories having many thousands of files. Thanks to René Kyllingstad.
iswitchb, give match priority to buffers not currently visible.
C-r: select next/previous match.
RETkey press, to differentiate from
TAB. Thanks to René Kyllingstad.
C-f: move highlight to next column.
C-b: move highlight to previous column.
C-x e: open a new buffer with current name.
C-x d: launch
diredat the currently viewed directory.