442 lines
14 KiB
Groff
442 lines
14 KiB
Groff
|
From wagner@hatteras.cs.unc.edu (Michael Wagner)
|
||
|
Subject: vi (including file name)
|
||
|
Date: 9 Jan 92 20:47:44 GMT
|
||
|
Status: RO
|
||
|
|
||
|
|
||
|
I'm working on a macro (in vi) that would allow me
|
||
|
to automatically write the name of the file into
|
||
|
the current cursor location in the file.
|
||
|
|
||
|
I know that "%" seems to be the name of the file,
|
||
|
it seems that you can rename a file with
|
||
|
|
||
|
:w %.new
|
||
|
|
||
|
I think I could usually simulate what I want with a
|
||
|
:r !ls %
|
||
|
|
||
|
but there has to be a better way.
|
||
|
|
||
|
Mike
|
||
|
|
||
|
|
||
|
From steinbac@hpl-opus.hpl.hp.com (Guenter Steinbach)
|
||
|
Subject: Re: vi (including file name)
|
||
|
Date: 10 Jan 92 23:41:01 GMT
|
||
|
Status: O
|
||
|
|
||
|
In comp.editors, wagner@hatteras.cs.unc.edu (Michael Wagner) writes:
|
||
|
|
||
|
|
||
|
> I'm working on a macro (in vi) that would allow me
|
||
|
> to automatically write the name of the file into
|
||
|
> the current cursor location in the file.
|
||
|
Yes! I'd like that also. Right now all I can do is ^G to display the
|
||
|
name, then cut it with the mouse (under X11) and paste it where I need
|
||
|
it. But a macro would be so much nicer.
|
||
|
|
||
|
> I think I could usually simulate what I want with a
|
||
|
> :r !ls %
|
||
|
Usually, but not before the file has been written, else instead of
|
||
|
"filename" you'll get "filename not found".
|
||
|
|
||
|
Guenter Steinbach steinbac@hpl-opus.hpl.hp.com
|
||
|
|
||
|
|
||
|
From dattier@gagme.chi.il.us (David W. Tamkin)
|
||
|
Subject: Re: vi (including file name)
|
||
|
Date: 10 Jan 92 23:30:03 GMT
|
||
|
Status: O
|
||
|
|
||
|
wagner@hatteras.cs.unc.edu (Michael Wagner) wrote in <8656@borg.cs.unc.edu>:
|
||
|
|
||
|
| I'm working on a macro (in vi) that would allow me
|
||
|
| to automatically write the name of the file into
|
||
|
| the current cursor location in the file.
|
||
|
|
||
|
:r !echo % will write it below the current line, and
|
||
|
:-r !echo % will write it above the current line.
|
||
|
|
||
|
David W. Tamkin Box 7002 Des Plaines, Illinois 60018-7002 +1 708 518 6769
|
||
|
dattier@gagme.chi.il.us CIS: 73720,1570 MCI Mail: 426-1818 +1 312 693 0580
|
||
|
|
||
|
|
||
|
From ttobler@unislc.uucp (Trent Tobler)
|
||
|
Subject: Re: vi (including file name)
|
||
|
Date: 13 Jan 92 17:40:53 GMT
|
||
|
Status: O
|
||
|
|
||
|
steinbac@hpl-opus.hpl.hp.com (Guenter Steinbach) writes:
|
||
|
> In comp.editors, wagner@hatteras.cs.unc.edu (Michael Wagner) writes:
|
||
|
>
|
||
|
>
|
||
|
> > I'm working on a macro (in vi) that would allow me
|
||
|
> > to automatically write the name of the file into
|
||
|
> > the current cursor location in the file.
|
||
|
>
|
||
|
> Yes! I'd like that also. Right now all I can do is ^G to display the
|
||
|
> name, then cut it with the mouse (under X11) and paste it where I need
|
||
|
> it. But a macro would be so much nicer.
|
||
|
>
|
||
|
> > I think I could usually simulate what I want with a
|
||
|
> > :r !ls %
|
||
|
> Usually, but not before the file has been written, else instead of
|
||
|
> "filename" you'll get "filename not found".
|
||
|
|
||
|
would
|
||
|
:r !echo %
|
||
|
work?
|
||
|
|
||
|
|
||
|
--
|
||
|
Trent Tobler - ttobler@csulx.weber.edu
|
||
|
|
||
|
|
||
|
From gerolima@netlabs.com (Mark Gerolimatos)
|
||
|
Subject: VI: Changing case for an entire word...how did I do it?
|
||
|
Date: 19 Jan 92 01:58:39 GMT
|
||
|
Status: O
|
||
|
|
||
|
|
||
|
|
||
|
Somehow, I managed to do this by accident. Just now, I did it again.
|
||
|
And the damned thing is that I don't know how!
|
||
|
|
||
|
Now, '~' will toggle the case of a character, but it seems to be immune to the
|
||
|
standard VI [count] command [address modifier] syntax (i.e. '~w' will toggle
|
||
|
the case of the current character, and then move on to the next word).
|
||
|
|
||
|
|
||
|
How did I do this?
|
||
|
|
||
|
If possible, please respond via mail...
|
||
|
-Mark
|
||
|
P.S. If it's in the manual, I couldn't find it...
|
||
|
====================================Cut Here====================================
|
||
|
gerolima@neon.stanford.edu "Righteousness comes ONLY from Jesus Christ...
|
||
|
@netlabs.com ...NEVER from an apron."
|
||
|
-Jack T. Chick
|
||
|
================================================================================
|
||
|
|
||
|
|
||
|
From gregg@cbnewsc.cb.att.com (gregg.g.wonderly)
|
||
|
Subject: Re: How do I... (vi or awk question, perhaps?)
|
||
|
Date: 25 Jan 92 00:02:07 GMT
|
||
|
Status: O
|
||
|
|
||
|
>From article <1992Jan16.215423.11078@ux1.cso.uiuc.edu>, by weller@osiris (Bonnie Weller):
|
||
|
> For instance, my vi file looks like this...
|
||
|
>
|
||
|
> Field 1 Field 2
|
||
|
> Record# Coorx Coory
|
||
|
>
|
||
|
> 1 1234 4321
|
||
|
> 2 1111 4444
|
||
|
> 3 2222 3333
|
||
|
>
|
||
|
>
|
||
|
> I want it to look like this....
|
||
|
>
|
||
|
> Field 1 Field 2 Field 3
|
||
|
> Record# Coorx Coory Label
|
||
|
>
|
||
|
> 1 1234 4321 1
|
||
|
> 2 1111 4444 2
|
||
|
> 3 2222 3333 3
|
||
|
|
||
|
|
||
|
Two people have suggested using awk, and their solutions involve doing
|
||
|
something with an intermediate file. From within vi, you can filter
|
||
|
your file by doing the following. On the top line of your
|
||
|
file, add the following line.
|
||
|
|
||
|
!Gawk '{printf "\%s\%8d\n", $0, NR}'
|
||
|
|
||
|
Next type
|
||
|
|
||
|
1G"ayy
|
||
|
|
||
|
to put the top line (the one with awk on it) into the buffer a.
|
||
|
Next, put the cursor at the beginning of the first line of data
|
||
|
that you want to change. Then, type
|
||
|
|
||
|
@a
|
||
|
|
||
|
to tell vi to eat the contents of buffer a as keystrokes you have typed.
|
||
|
If you don't like the spacing, type a 'u' to undo the changes, and change
|
||
|
the '%8' to be '%5', or something. Then start over at "Next type"
|
||
|
above.
|
||
|
|
||
|
Filtering and using the named buffers as macros are very useful parts
|
||
|
of vi. Knowing how to use them can save you many hours of work...
|
||
|
|
||
|
--
|
||
|
-----
|
||
|
gregg.g.wonderly@att.com (AT&T bell laboratories)
|
||
|
|
||
|
|
||
|
From lwv26@cas.org (Larry W. Virden)
|
||
|
Subject: Re: .exrc location(s)
|
||
|
Date: 25 Jan 92 15:53:13 GMT
|
||
|
Status: O
|
||
|
|
||
|
In article <1992Jan24.211333.18456@jpradley.jpr.com> jpr@jpradley.jpr.com (Jean-Pierre Radley) writes:
|
||
|
:In article <1992Jan24.001030.8749@samba.oit.unc.edu> uevans@med.unc.edu (Elizabeth A. Evans) writes:
|
||
|
:>So why am I finding that the file has to be in (or linked to) every
|
||
|
:>subdirectory I'm in during a vi session? Is there some other way
|
||
|
:>I should do it?
|
||
|
:
|
||
|
:Try putting it into your $HOME directory; vi looks there too.
|
||
|
:
|
||
|
:I don't use a .exrc file, since it's alledgedly quicker to put the information
|
||
|
:into an EXINIT environment variable, which I do in my .profile or .login.
|
||
|
:
|
||
|
:You can "localize" your vi macros, if the last thing in your $HOME/.exrc, or in
|
||
|
:your EXINIT, is ":so .exrc+". Then you can have a different .exrc+ in your
|
||
|
:directory for for new C code; in your directory for mail, etc. Most often, the
|
||
|
:kind of macros I'd put in a .exrc+ would concern sw and wm.
|
||
|
|
||
|
1. I dont know why some folks on Suns seem not get to their ~/.exrc used,
|
||
|
unless they have EXINIT set to "" - it should be unset altogether!
|
||
|
|
||
|
2. A warning about many vi's that I have used. It appears that the .exrc
|
||
|
handling isnt too smart. For instance, if you edit a file in your HOME
|
||
|
directory - .exrc gets read twice (once as your HOME exrc and once for your
|
||
|
local perhaps?). Well, so what? If you have a lot of macros defined in
|
||
|
your HOME/.exrc, you will find you start getting error msgs when you edit
|
||
|
in your HOME directory - you run the macro code out of buffer space. The
|
||
|
thing is, if you have the same macro defined IDENTICALLY (or any other way)
|
||
|
both definitions appear in vi's macro buffer - I believe he only executes
|
||
|
the last one - but the others are still there.
|
||
|
|
||
|
Sigh.
|
||
|
--
|
||
|
Larry W. Virden UUCP: osu-cis!chemabs!lwv26
|
||
|
Same Mbox: BITNET: lwv26@cas INET: lwv26@cas.org
|
||
|
Personal: 674 Falls Place, Reynoldsburg,OH 43068-1614
|
||
|
America Online: lvirden
|
||
|
|
||
|
|
||
|
From jpr@jpradley.jpr.com (Jean-Pierre Radley)
|
||
|
Subject: Re: vi macro def at startup
|
||
|
Date: 26 Jan 92 18:57:42 GMT
|
||
|
Status: O
|
||
|
|
||
|
In article <sjreeves.920125112507@eng.auburn.edu> sjreeves@eng.auburn.edu (Stan Reeves) writes:
|
||
|
>I want to define a macro in my ~/.exrc file, but it doesn't seem to work.
|
||
|
>For example, I put
|
||
|
>
|
||
|
>:map t dd
|
||
|
>
|
||
|
>in the ~/.exrc file to test it, and it doesn't take. I don't have another
|
||
|
>.exrc file in the directory I was using. Any ideas?
|
||
|
|
||
|
|
||
|
One little colon!
|
||
|
|
||
|
If you're already inside 'vi', then typing
|
||
|
:map t dd
|
||
|
would map 't' to 'dd'.
|
||
|
|
||
|
But that ':' doesn't belong in your .exrc file.
|
||
|
--
|
||
|
Jean-Pierre Radley Unix in NYC jpr@jpr.com jpradley!jpr CIS: 72160,1341
|
||
|
|
||
|
|
||
|
From mike@swsrv1.cirr.com (Mike Haddon)
|
||
|
Subject: Re: vi macro def at startup
|
||
|
Date: 26 Jan 92 21:44:11 GMT
|
||
|
Status: O
|
||
|
|
||
|
In article <sjreeves.920125112507@eng.auburn.edu> sjreeves@eng.auburn.edu (Stan Reeves) writes:
|
||
|
>I want to define a macro in my ~/.exrc file, but it doesn't seem to work.
|
||
|
>For example, I put
|
||
|
>
|
||
|
>:map t dd
|
||
|
|
||
|
I am doing this in my .exrc file as:
|
||
|
|
||
|
map P :t dd
|
||
|
|
||
|
where P is the macro identifier to use when you want to execute the macro
|
||
|
and it works pretty well.
|
||
|
|
||
|
|
||
|
--
|
||
|
******************************************************************************
|
||
|
* | | *
|
||
|
* Mike Haddon | 6717 Woodsmoke Way | Fort Worth, Tx. 76137 *
|
||
|
* mike@swsrv1.cirr.com | ...!egsner!swsrv1!mike | ...!void!swsrv1!mike *
|
||
|
|
||
|
|
||
|
From hansm@cs.kun.nl (Hans Mulder)
|
||
|
Subject: Re: vi macro def at startup
|
||
|
Date: 29 Jan 92 02:20:08 GMT
|
||
|
Status: O
|
||
|
|
||
|
In <1992Jan26.185742.11545@jpradley.jpr.com> jpr@jpradley.jpr.com (Jean-Pierre Radley) writes:
|
||
|
>In article <sjreeves.920125112507@eng.auburn.edu> sjreeves@eng.auburn.edu (Stan Reeves) writes:
|
||
|
>>:map t dd
|
||
|
|
||
|
>One little colon!
|
||
|
|
||
|
>But that ':' doesn't belong in your .exrc file.
|
||
|
|
||
|
What version of vi are you using?
|
||
|
|
||
|
All versions I've ever seen allow you to type 1 (one) superfluous colon
|
||
|
at the start of an ex command.
|
||
|
|
||
|
And, frankly, I find myself doing that a lot when in ex mode.
|
||
|
|
||
|
--
|
||
|
Hans Mulder hansm@cs.kun.nl
|
||
|
|
||
|
|
||
|
From hansm@cs.kun.nl (Hans Mulder)
|
||
|
Subject: Re: vi macro def at startup
|
||
|
Date: 29 Jan 92 11:49:59 GMT
|
||
|
Status: O
|
||
|
|
||
|
In <1992Jan26.214411.795@swsrv1.cirr.com> mike@swsrv1.cirr.com (Mike Haddon) writes:
|
||
|
>I am doing this in my .exrc file as:
|
||
|
|
||
|
>map P :t dd
|
||
|
|
||
|
>where P is the macro identifier to use when you want to execute the macro
|
||
|
>and it works pretty well.
|
||
|
|
||
|
When I try that, vi says "t requires a trailing address".
|
||
|
|
||
|
Wouldn't it be better to write:
|
||
|
|
||
|
map P :t 'd ^M
|
||
|
|
||
|
[As always, getting a ^M requires typing control-V control-M.]
|
||
|
|
||
|
--
|
||
|
Hans Mulder hansm@cs.kun.nl
|
||
|
|
||
|
|
||
|
From soh@andromeda.trl.OZ.AU (Kam Hung Soh)
|
||
|
Subject: Re: .exrc location(s)
|
||
|
Date: 29 Jan 92 21:29:41 GMT
|
||
|
Status: O
|
||
|
|
||
|
jos@and.nl (Jos Horsmeier) writes:
|
||
|
|
||
|
>In article <1992Jan24.001030.8749@samba.oit.unc.edu> uevans@med.unc.edu (Elizabeth A. Evans) writes:
|
||
|
>|Well, I knew this a while back and then didn't fiddle with vi macros
|
||
|
>|for a while, and now I'm back at them. To create a vi macro, I
|
||
|
>|create a file called .exrc with the macro(s) defined in it, right?
|
||
|
>|So why am I finding that the file has to be in (or linked to) every
|
||
|
>|subdirectory I'm in during a vi session? Is there some other way
|
||
|
>|I should do it?
|
||
|
|
||
|
[ Jos quotes from the Sun vi man page ... ]
|
||
|
|
||
|
>It simply doesn't work that way. Vi (with SunOS 4.1.1.) just checks
|
||
|
>the cwd for .exrc, *not* the ~/ dir.
|
||
|
|
||
|
On my system (SparcStation 1+, SunOS 4.1.1), vi reads .exrc in the
|
||
|
present directory, AND .exrc in my home directory.
|
||
|
|
||
|
If the EXINIT environment variable is defined, vi will use that
|
||
|
variable and only .exrc in the present directory, ignoring .exrc in my
|
||
|
home directory.
|
||
|
|
||
|
Regards,
|
||
|
|
||
|
---
|
||
|
Soh, Kam Hung | h.soh@trl.oz.au | Telecom Research Laboratories,
|
||
|
| +61 3 253 6638 | POB 249 Clayton, Victoria 3168, Australia
|
||
|
|
||
|
From marzouki@rhone.imag.fr (Meryem Marzouki)
|
||
|
Subject: Re: vi macro def at startup
|
||
|
Date: 29 Jan 92 10:03:34 GMT
|
||
|
Status: O
|
||
|
|
||
|
In article <1992Jan26.185742.11545@jpradley.jpr.com> jpr@jpradley.jpr.com (Jean-Pierre Radley) writes:
|
||
|
>In article <sjreeves.920125112507@eng.auburn.edu> sjreeves@eng.auburn.edu (Stan Reeves) writes:
|
||
|
>>I want to define a macro in my ~/.exrc file, but it doesn't seem to work.
|
||
|
>>For example, I put
|
||
|
>>
|
||
|
>>:map t dd
|
||
|
>>
|
||
|
>>in the ~/.exrc file to test it, and it doesn't take. I don't have another
|
||
|
>>.exrc file in the directory I was using. Any ideas?
|
||
|
|
||
|
>One little colon!
|
||
|
|
||
|
>If you're already inside 'vi', then typing
|
||
|
> :map t dd
|
||
|
>would map 't' to 'dd'.
|
||
|
|
||
|
>But that ':' doesn't belong in your .exrc file.
|
||
|
|
||
|
It also works in the ~/.exrc file ! This macro (and any macro) syntax is
|
||
|
the same if you are either inside vi or if it's a line of your .exrc.
|
||
|
The only difference is that in the first case, the macro is no longer
|
||
|
valid after your current vi session.
|
||
|
|
||
|
Meryem MARZOUKI - Groupe Architecture des Ordinateurs - Lab TIM3/IMAG INPG
|
||
|
Tel. (+33) 76 57 46 96 - Fax. (+33) 76 47 38 14
|
||
|
46 avenue Felix Viallet - 38031 Grenoble Cedex - France
|
||
|
Internet : marzouki@archi.imag.fr - Bitnet : marzouki@frcime51.bitnet
|
||
|
|
||
|
|
||
|
Newsgroups: comp.editors
|
||
|
From jjj@mits.mdata.fi (Joni Jarvenkyla)
|
||
|
Subject: Octal code quotation in vi search & replace?
|
||
|
|
||
|
|
||
|
How to quote octal codes to vi seach & replace command
|
||
|
(%s/string1/string2/g)?
|
||
|
|
||
|
Problem is that I've got a file with octal codes \204 and \244 which
|
||
|
should get translated to ascii characters { and |.
|
||
|
|
||
|
--
|
||
|
jjj@mits.mdata.fi "Miks mun pit{is olla vastuussa jos t{{lt{
|
||
|
jjj@niksula.hut.fi l|ytyy jotain vitun irtop{it{?"
|
||
|
|
||
|
-Kari Nenonen, "Ken Kuolleita Kutsuu"
|
||
|
|
||
|
|
||
|
From beaty@aberdeen.FtCollins.NCR.com (Steve Beaty)
|
||
|
Subject: Re: .exrc location(s)
|
||
|
Date: 31 Jan 92 16:42:00 GMT
|
||
|
Status: O
|
||
|
|
||
|
uevans@med.unc.edu (Elizabeth A. Evans) writes:
|
||
|
> Well, I knew this a while back and then didn't fiddle with vi macros
|
||
|
> for a while, and now I'm back at them. To create a vi macro, I
|
||
|
> create a file called .exrc with the macro(s) defined in it, right?
|
||
|
|
||
|
i recently was dorking around with this stuff and realized that i
|
||
|
wanted to change my mappings based on the type of file i was editing.
|
||
|
i wrote the following csh file to do this:
|
||
|
----------------------------------------------------------------------
|
||
|
#! /bin/csh -f
|
||
|
set suffix = $argv[1]:e
|
||
|
if (-e ~/.exrc.$suffix) then
|
||
|
/usr/ucb/vi +":so ~/.exrc.$suffix" $argv
|
||
|
else
|
||
|
/usr/ucb/vi $argv
|
||
|
endif
|
||
|
----------------------------------------------------------------------
|
||
|
what this does is search in my home directory for files like ".exrc.c"
|
||
|
and ".exec.tex" for mappings for C and TeX source file mappings. i
|
||
|
then just place my generic stuff in .exrc and the source-specific
|
||
|
stuff in the additional .exec.*. if there isn't an associated file,
|
||
|
it just runs with the generic arguments. pretty handy. one problem i've
|
||
|
found is that vi doesn't seem to source the extra .exrc's when editing
|
||
|
an empty file. oh well.
|
||
|
|
||
|
Steve Beaty Steve.Beaty@ftcollins.ncr.com
|
||
|
Advanced Development beaty@longs.lance.colostate.edu
|
||
|
NCR Microelectronics (303) 226-9622 (palinphone)
|
||
|
"What You See Is What You Get, but it sure ain't what we need." Talking Heads
|
||
|
|