Path: utzoo!attcan!uunet!mcvax!cernvax!ethz!solaris!wyle From: wyle@solaris.UUCP (Mitchell Wyle) Newsgroups: comp.unix.questions Subject: Re: block moves in vi Keywords: vi macro Message-ID: <425@solaris.UUCP> Date: 6 Jul 88 11:37:37 GMT References: <803@taux01.UUCP> Reply-To: wyle%ifi.ethz.ch@relay.cs.net (Mitchell Wyle) Organization: SOT Sun Cluster, ETH Zuerich Lines: 36 In article <803@taux01.UUCP> cjosta@taux01.UUCP (Jon Sweedler) writes: >Is there any way to move a block of text in vi? When I say block, I >mean a rectangle of text. For example: > >what EVER is in >upper CASe in this >senteNCE is part >of a BLOCk of text >and wHATEver is in >lower CASe is not >part OF The block. > >So the block starts in column 6 and continues to column 9. I would >like to be able to pick up the block and insert or overlay it in >another position. Thanks in advance. Try: :map ;x 5l"By5l0j Then try typing ;x 7 times. The buffer b should contain your upper case text. (To put it somewhere, type "bp) I don't know if that's what you want. I often have similar tasks, do them manually a few times while watching my key-strokes, then write a quick :map macro to automate them. For those of us who don't think in mock-lisp ;-) , I suspect my strategy is good for quick editor macros. The best resource on vi(1) is Dan Smith at Island Graphics. He probably has a better, more elegant vi macro to accomplish your task which he uses all the time. Right Dan? -- -Mitchell F. Wyle wyle@ethz.uucp Institut fuer Informatik wyle%ifi.ethz.ch@relay.cs.net ETH Zentrum 8092 Zuerich, Switzerland +41 1 256-5237