Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: searching words in history similar to insert-last-word

On 14 March 2013 13:06, Dominik Vogt <VOGT@xxxxxxxxxx> wrote:
> Hi folks,
> I'm looking for a way to complete the last word I'm typing on the command
> line by doing a history search.  With Alt-. (insert-last-word) I can browse
> through the last words of the previous lines, but I'm looking for something
> more clever.  My use case is this:
> I'm copying files to remote machines with scp, e.g.
>   $ scp foo user@machine1.domain:
>   $ scp bar baz .* user@machine2.domain:
> I'd like to be able to simplify this by being able to type
>   $ scp xyz user@<SHIFT-UP><SHIFT-UP>
> to yield
>   $ scp xyz user@machine1.domain:
> When I press <SHIFT-UP> repeatedly, zsh should replace the last word on the
> line with words from the history that begin with "user@".  The function
> name might be something like "beginning-search-up".  Some extra features
> or options would be:
> 1. Ignore the first word of each line but look through all other words
>    on each history line.
> 2. (If the word that is to be completed is the first word on the line,
>    only consider the first word of all history lines.)
> 3. Allow searching in the other direction with <SHIFT-DOWN>.

alt-/ (_history-complete-older)

> And as a related but seperate issue:
> How can I make a function that works like insert-last-word but works in the
> opposite direction (insert-next-word).  This would of course only be
> usefull if I use insert-last-word first.

_insert_next_word () {
        zle .insert-last-word 1 -1
zle -N insert-next-word _insert_next_word

Mikael Magnusson

Messages sorted by: Reverse Date, Date, Thread, Author