Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: New user questions
- X-seq: zsh-users 2994
- From: Zefram <zefram@xxxxxxxx>
- To: Andrew Morton <morton@xxxxxxxxxxxxxxxxxx>
- Subject: Re: New user questions
- Date: Thu, 30 Mar 2000 14:27:37 +0100 (BST)
- Cc: zsh-users@xxxxxxxxxxxxxx
- In-reply-to: <38E2C6AA.62D027CD@xxxxxxxxxxxxxxxxxxxxx> from Andrew Morton at "Mar 30, 2000 03:14:50 am"
- Mailing-list: contact zsh-users-help@xxxxxxxxxxxxxx; run by ezmlm
Andrew Morton wrote:
>prompt> cd /usr/src/li^R
>linux/ linux-2.2.9/ linux-2.3.99-pre3/
>linux-akpm/
>
>So typing ^R in a command line produces a diectory listing of matching
>files and allows you to continue typing.
The widget list-choices does this. Well, actually it produces a list
of possible completions, which are often context dependent (e.g., with
the new completion mechanism enabled, after "kill -" it'll give a list
of signal names). If you actually want strictly a file listing, you'll
have to write your own widget.
list-choices is by default bound to ^D in the vi insert mode keymap, ^D
and = in vi command mode, and ESC ^D in Emacs mode. delete-char-or-list
(^D in Emacs mode) behaves like list-choices when at the end of the line.
>pwold011:~> /sbin/shutdown
>shutdown: must be root.
>pwold011:~> sudo ^W
>
>Here, typing ^W will insert _all_ of the previous line at the prompt.
>(I'd expected get-line to do this, but it just beeps...)
You'll have to write your own widget if you want to do it that way.
Personally I use history expansion to do this. "sudo !!" would
interpolate the previous command. "sudo !!<TAB>" will expand it in
place, while the command is being edited. With magic-space, "sudo !! "
will implicitly expand it when the trailing space is inserted.
>prompt> cp /foo/bar /zot/bop
>prompt> ls /fo^C
>
>Here, ^C will search back through the word history and insert
>'/foo/bar'. If I immediately hit ^C again, it will rub out the 'o/bar'
>and search further back in history, so one can just keep hitting ^C.
_history_complete_word is supposed to do something like this, but I
don't know enough about it.
>This normally generates interrupt. Is there a way of making it
>available to the interactive editor without globally sttying it? (The
>shell would need to restore the intr char when it leaves editing mode).
No. You could temporarily stty it in precmd/preexec, but that has all
sorts of drawbacks.
>I would like to do something similar, but have it walk back through all
>the previous words, not just the final ones on each line:
>
>prompt> echo aaa bbb ccc ddd
>prompt> echo ^O # Expands to echo ddd
>prompt> echo ^O^O # Expands to echo ccc
Again, this is most easily done with history expansion. In the above,
"!:1" will expand to "aaa", "!:2" to "bbb", and so on; "!$" expands to
the last word on the previous line.
>Is there a widget which deletes from the cursor to the end of line?
kill-line does the Emacs thing (delete up to, but not including, NL,
unless that's nothing, in which case it deletes the NL). vi-kill-eol
deletes up to, but not including, NL. Both are bound by default in the
appropriate editing modes.
>All the editor commands define a word separator as a space. Is there a
>way of changing zsh's idea of word separators? I would prefer that it
>consider '/' to be a separator as well.
Look at the parameter WORDCHARS.
>If asynchronous output mucks up the editor output, how to redraw it?
>'clear-screen' will do the job, but I'd prefer it not clear the screen.
redisplay.
-zefram
Messages sorted by:
Reverse Date,
Date,
Thread,
Author