[clug] Command of the Hour

Nathan Rickerby rickerby at gmail.com
Mon Sep 22 23:00:21 GMT 2008

On Tue, Sep 16, 2008 at 08:10:18AM +1000, Brett Worth wrote:
> One I use a lot is fmt.  If I'm editing text in vi I normally use "set wm=5" to get the
> line wrapping at the 5th to last column.  After making changes though the formatting gets
> out of whack.  I then use the "!" with a moving command to send a block of the file
> through "fmt". e.g.
> 	{      -  Go to the blank line before a paragraph.
> 	!}fmt  -  Send the paragraph through fmt.

Something similar that also works quite well is par
http://www.nicemice.net/par/ it handles multiple levels of quoting
characters which is really handy for email.

One vi command I like is !!sh to execute the current line in a shell.
It's useful if you're building up a long one-liner and want to easily
document the output and your progress.  Or if you want to include the
output of previous commands in future commands, for example

ls *txt<esc>!!sh
  edit the output, insert cat at the front of the line and | grep whatever at
  the end of the line, then

I find it easier to use than :r!

also !!dc for a calculator, for example
4534 445 * 5 / 2 + p<esc>!!dc
and again you can use the output of that in your next calculation.
It probably doesn't need need pointing out, but if you yyp before you
!!dc you can keep a copy of the input.

On Tue, Sep 16, 2008 at 11:06:11AM +1000, Jeremy Kerr wrote:
> > And sudo tee
> > Because `sudo echo foo > file` won't work when you don't have
> > permission to change file, the shell does the redirection.
> > `echo foo | sudo tee file` will work for you.
> I use dd for this:
> echo 1 | sudo dd of=/proc/sys/net/ipv4/ip_forward
> - which gives you the same semantics as bash redirection (ie, the output 
> isn't copied to stdout)

As much as I appreciate that use of dd, tee has the advantage that you
can use the -a option to append to the file like >>.

More information about the linux mailing list