Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Sep 2013 03:06:00 +0200
From:      Polytropon <freebsd@edvax.de>
To:        Gary Kline <kline@thought.org>
Cc:        FreeBSD Mailing List <freebsd-questions@freebsd.org>
Subject:   Re: minor vi/vim qstn
Message-ID:  <20130926030600.8850ddc5.freebsd@edvax.de>
In-Reply-To: <20130926002104.GA12932@ethic.thought.org>
References:  <20130925212741.GA19434@ethic.thought.org> <20130926002327.6502d1b9.freebsd@edvax.de> <20130926002104.GA12932@ethic.thought.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 25 Sep 2013 17:21:04 -0700, Gary Kline wrote:
> Organization: Thought Unlimited.  Public service Unix since 1986.
> Of_Interest: With 27 years  of service  to the  Unix  community.
> 
> On Thu, Sep 26, 2013 at 12:23:27AM +0200, Polytropon wrote:
> > On Wed, 25 Sep 2013 14:27:41 -0700, Gary Kline wrote:
> > > 	am I misremembering this feature, or didnt vi have a syntax where
> > > 	you typed something like:
> > > 
> > > 	% vi[#] or % vi [-2]  [or vi [-N]
> > > 	
> > > 	to repeat the last or the second from last  command?  with my
> > > 	shoulder sore bloody sore I need to save every key stroke.  
> > 
> > To repeat the last command, "." can be used.
> > 
> > The vi editor (and probably vim and gvim) supports
> > according to "man vi":
> > 
> >        [Vi]i[sual][!] [+cmd] [file]
> >               Vi mode only.  Edit a new file.
> > 
> > Is this what you're searching for?
> 
> 
> 	I THOGoHT it was "!", but lookit:
> 
> 
> pts/14 17:11 <tao> [5010] vi sent
> pts/14 17:11 <tao> [5011] vi!
> zsh: command not found: vi!
> pts/14 17:12 <tao> [5012]
> 
> .......  this is vi == vim.  
> 
> 	AHA:: found it.  it's [bang]<commant>
> 
> 
> pts/14 17:17 <tao> [5016] vi sent
> pts/14 17:17 <tao> [5017] !v    
> 
> 
> 	I'll tell ya, if vi disappeared , I'd end it all!

Ah, I see - you've been refering to repeating a _shell_
command (so the question was regarding the shell, which
in your case is Z shell).

You can probably use (like in the C shell) the arrow keys
to browse the command history. Similarly, you can use the
"!<number>" command refering to the command number obtained
by the "history" command. There's a handy alias defined
globally for the C shell: "h" which means "history 25"
(lists the last 25 commands), handy in regards of saving
keystrokes. :-)

I assume the zsh is also capable of "filtered history":
For example, you enter "vi s" and use the up and down
arrow keys to browse all commands that have been entered
starting with "vi s" (for example "vi sent", "vi stuff"
and so on). If the system's csh can do this, zsh should
also provide this useful feature.

And as your prompt "pts/14 17:12 <tao> [5012]" suggests,
the command number is being shown. If this information
is the same as the command number in the history, entering
"!5010" would execute the 2nd from last command.

To repeat the last command, whatever it has been, "!!"
can be used. Again, this works in csh, so I can't predict
if it will work in zsh too, but I _assume_ it does.




-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130926030600.8850ddc5.freebsd>