zsh-users
 help / color / mirror / code / Atom feed
From: Sebastian Gniazdowski <sgniazdowski@gmail.com>
To: vogt@linux.vnet.ibm.com, zsh-users@zsh.org
Subject: Re: Announcement of Zsh Command Architect v1.0
Date: Fri, 8 Jan 2016 16:33:22 +0100	[thread overview]
Message-ID: <CAKc7PVCQ5=K7eN-9dU6W6nFVOjGccSB4fVQqwFdXAygLHPrwUg@mail.gmail.com> (raw)
In-Reply-To: <20160108093313.GA16910@linux.vnet.ibm.com>

On 8 January 2016 at 10:33, Dominik Vogt <vogt@linux.vnet.ibm.com> wrote:
> On Wed, Jan 06, 2016 at 05:22:29PM +0100, Sebastian Gniazdowski wrote:
>> Version 1.0 of the tool is ready, webpage with animated gifs:
>>
>> https://github.com/psprint/zsh-cmd-architect
>
> I've watched the video on that page many times and I'm still
> trying to figure out what kind of problem this module can solve
> that cannot be solved with history search, menu completion and
> pressing <TAB> a couple of times.

The main idea is navigation. It's possible to implement in Zsh thanks
to zsh/curses. I quite well feel what this is about but my explanation
is still rather imperfect.

Navigation: seeing much, narrowing what is seen, pressing cursors.
Typical approach: seeing little, invoking commands to resolve,
pressing keystrokes.

For example, Zsh can invoke things from history. I never learned how
to do this, but it has something to do with "!" command. AFAIK, one
can quickly run say 3rd last command from history and also use say 2nd
argument from last command. Forgive me my ignorance, but I never
crossed the border to use this functionality as I was repelled by the
following: seeing little, commanding much, pressing keystrokes.

Navigation is opposite. Seeing much, commanding little, pressing cursors.

ZNT allowed to see history, narrow what is seen with multi-keyword
searches, press cursors. ZCA allows to use any command segment from
all that, and arrange the selected segments. Seeing much, commanding
little, pressing cursors.

>> Feature highlights:
>> - adding, removing, moving segments of commands
>
>> - colorful searching in history with multi-word matching
>
> The multi-word matching syntax would be helpful in general for all
> "search"-type operations.

Yep, and all what's needed is awareness of patterns of following form:
*foo*~^*bar*

> I never use the mouse for that (partially because the middle mouse
> button is broken):
>
>   (Move cursor to start of word to copy)
>   Ctrl-Space (set mark)
>   (Move cursor to start of word to copy)
>   Ctrl-w (cut)
>   (Move cursor to new location of the word)
>   Ctrl-y (yank; insert cut buffer)
>
> Or with the example from the video:
>
>   # type
>   mplayer -fs
>   # noticed that I need a long word from the history, so comment
>   # out the unfinished command line and store it in the history
>   <ctrl-a>#<return>
>   # look for the history line with the long word; the multi word
>   # search would be helpful
>   <ctrl-r>The_Voi
>   # Mark and cut the file name:
>   <move cursor><ctrl-space><ctrl-f><ctrl-w>
>   # abort editing
>   <ctrl-g>
>   # recall the unfinished command and insert the cut-buffer
>   <cursor-up><ctrl-e> <ctrl-y>
>   # remove comment and execute
>   <ctrl-a><delete><return>
>
> That's fifteen additional keystrokes plus typing part of the file
> name and moving the cursor to the start of the name.  And that's a
> lot more typing than just "mplayer -fs The_Voi<TAB><RETURN>".
>
> To me it appears that cases where a complicated part of a former
> history line needs to be copied and the same cannot easily be done
> with completion is quite rare.  And even then I could just edit
> the complicated line instead of copying a part of it to a new
> line.

The yanking you presented is big player here. ZCA allows to quickly
insert segments from history, but with yanking learned by fingers one
can accomplish this in the way you presented. However, this is still:
seeing little, commanding much, pressing keystrokes, isn't it? The
normal command-wise approach.

Best regards,
Sebastian Gniazdowski


  parent reply	other threads:[~2016-01-08 15:33 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-06 16:22 Sebastian Gniazdowski
2016-01-08  9:33 ` Dominik Vogt
2016-01-08  9:55   ` Sebastian Gniazdowski
2016-01-08 15:33   ` Sebastian Gniazdowski [this message]
2016-01-08 16:29   ` Mikael Magnusson
2016-01-08 17:04     ` Sebastian Gniazdowski
2016-01-09  8:21       ` Sebastian Gniazdowski
2016-01-09 23:54         ` Bart Schaefer
2016-01-10  1:15           ` Mikael Magnusson
2016-01-10  7:32             ` Sebastian Gniazdowski
2016-01-10  9:52               ` Sebastian Gniazdowski
2016-01-10 12:37                 ` Sebastian Gniazdowski
2016-01-10  6:52           ` Sebastian Gniazdowski
2016-01-10  7:20             ` Sebastian Gniazdowski
2016-01-10 19:55               ` history-words (Re: Announcement of Zsh Command Architect v1.0) Bart Schaefer
2016-01-08 23:16   ` Announcement of Zsh Command Architect v1.0 Bernd Steinhauser
2016-01-09  4:24   ` Bart Schaefer
2016-01-09 17:21 ` jrun
2016-01-10 13:55   ` Sebastian Gniazdowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAKc7PVCQ5=K7eN-9dU6W6nFVOjGccSB4fVQqwFdXAygLHPrwUg@mail.gmail.com' \
    --to=sgniazdowski@gmail.com \
    --cc=vogt@linux.vnet.ibm.com \
    --cc=zsh-users@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).