On Wed, 15 Sep 2010, Ven Tadipatri wrote:

On Wed, Sep 15, 2010 at 2:21 PM, Christian Brabandt wrote:

On Mi, 15 Sep 2010, Ven Tadipatri wrote:

[...]

  Then I would like to sort it (removing duplicates) and send the output to a new window. I tried the following but with no luck
:new +!sort -u
:new +!sort\ -u
:new +%!sort\ -u
:new +:%!sort\ -u

Anyone else have ideas on how to get this behavior to work. It seems like something vi should be capable of doing - I want to execute a command on the current buffer and launch it in a new one.



I think, you would have to double the backslashes. But I am not sure, this does what you want. I would expect it to open a new window and in the new empty window perform :%sort -u which is not really useful.

The double backslashes didn't seem to work.
This behavior is useful because I want to compare the output before and after the sort, in 2 separate buffers, so I don't want it to be in the same window.

The following can serve as a workaround, but seems kludgy. Since you want to compare the output, you might want to use 'vnew' and surround it with :diffthis'es.

" exactly as specified: (open new window with results of cmd)
let bufnum=bufnr('.') | let bufdollar=line('$') | exe "new" | call 
append(0,getbufline(bufnum,'1',bufdollar)) | %!sort -u

" with diffy goodness
let bufnum=bufnr('.') | let bufdollar=line('$') | diffthis | exe "vnew" | call 
append(0,getbufline(bufnum,'1',bufdollar)) | diffthis | %!sort -u

Though diffing doesn't really make sense after sorting. Maybe you just want the output of one of these (which could replaced the 'sort -u' portion from above):

" find duplicated lines
%!sort | uniq -D

" find unmatched lines
%!sort | uniq -d

--
Best,
Ben

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to