On Thu, Feb 18, 2010 at 01:39:15PM -0800, Micah Cowan wrote:
> clemens fischer wrote:
> > Hi,
> >
> > I am very glad that tmux has rectangular copies now! But a problem as
> > well: in the following, try to cut out the block
> >
> > >bbb < from >aaa bbb
> > >yyyyy< >xxx yyyyy
> > >22 < >111 22
> >
> > At least in vi-copy mode on linux, the shortest line determines the
> > right border of the block.
> >
> > The other problem: for my purposes, I used to rely on screens ability
> > to 'J'oin the lines of any selection by either spaces, commas, newlines
> > (the default) or whatnot, ie. to make one long line of the selected
> > lines. For example, in a "ls -l" listing, I could select a few files on
> > the right hand side, 'J'oin them with commas and - in bash - type eg.
> > "cp <dir>/{<THE_SELECTION>} .". Not worry about the proper glob, that
> > is.
> >
> > If this is not too difficult and you can point me to the files involved,
> > I'd like to give it a try. If not, I'd have to call on the masters to
> > hand down the solution to this problem from heaven ...
>
> For the first solution, the file you want to look at is window-copy.c.
> It's not that the shortest line determines the right border, it's that
> tmux doesn't allow you to move the cursor beyond the end of the line
> you're currently on. If you started the selection from the bottom line,
> and ended it on the top, you'd be able to get your cursor one more over
> to the right.
>
> Have a look at window_copy_cursor_right. The comparison of data->cx
> against px is where it decides whether it's gone beyond the end, and
> should thus wrap to the next line. Perhaps you could change how px is
> set, so that it keeps its current setting when its not doing a rectangle
> selection, but sets px to the total screen-grid's width when it is.
Yeah, it should allow you to move the cursor anywhere in rectangle copy mode,
although of course EOL keys etc should work as before.
>
> Whether the selection is set should be indicated by
> data->screen.sel.flag, and whether rectangle is on should be in
> data->rectflag. The screen's width is screen_size_x(data->screen).
>
>
> For the second; I was discussing this recently with Robin Lee Powell,
> and I think a more general approach would be to make the selection, save
> it out to a file, process the file, and load it back in. Then you'd have
> the flexibility to do much more than screen currently allows (say, add
> quotes around each line before joining with commas).
>
> The following should bind <prefix> J to join the current (already
> finished) selection with spaces:
>
> bind-key J run-shell 'tmux save-buffer /tmp/.tmux-exchange; tr \n " " <
> /tmp/.tmux-exchange >/tmp/.tmux-exchange-processed; tmux load-buffer
> /tmp/.tmux-exchange-processed'
>
> --
> Micah J. Cowan
> http://micah.cowan.name/
>
> ------------------------------------------------------------------------------
> Download Intel® Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> tmux-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/tmux-users
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
tmux-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-users