Nobody ever responded to this thread ...
On Sep 30, 9:52am, Guido van Steen wrote:
} Subject: matlab-history-beginning-search-backward
}
} I would prefer a similar [to history-beginning-search-backward]
} widget that searches for commands in the command history, in such a
} way that "LBUFFER" is a SUBSTRING of these commands. (This is the
} default history management in MATLAB and FISH.)
}
} I know there is the "history-incremental-search-backward" widget,
} which is bound to "^r" by default. This widget does more-or-less what
} I want. However, it shows two prompts, which I don't seem to like that
} much. Moreover, if requires the userto invoke it first and then start
} typing what he looks for.
Ignoring the issue of the extra prompt, what you want can be accomplished
like so:
matlab-history-beginning-search-backward() {
local search="$LBUFFER"
zle up-line-or-history
zle end-of-line
zle history-incremental-search-backward "$search"
}
zle -N matlab-history-beginning-search-backward
bindkey ^X^P matlab-history-beginning-search-backward
bindkey -M isearch ^X^P history-incremental-search-backward
The tricky bit there is that you use one keybinding to enter incremental
search mode, and then bind the same keys in the special isearch map to
repeat that search. The other point to note is that you can start an
incremental search with an initial string by passing it as an argument.