📄 e4
字号:
.SHExercise 5:.PPExperiment with the substitute command.See what happens if yousubstitute for some word on a line with several occurrences of that word.For example, do this:.P1athe other side of the coin\*.s/the/on the/p.P2You will get.P1on the other side of the coin.P2A substitute command changes only the first occurrence of the first string.You can change all occurrences by adding a.UL g(for ``global'')to the.UL scommand, like this:.P1s/ . . . / . . . /gp.P2Try other characters instead of slashes to delimit the two setsof characters in the.UL scommand \- anything should workexcept blanks or tabs..PP(If you get funny results using any of the characters.P1^ \*. $ [ * \e &.P2read the section on ``Special Characters''.).SHContext searching \- ``/ . . . /''.PPWith the substitute command mastered, you can move on toanother highly important idea of.uled\- context searching..PPSuppose you have the original three line text in the buffer:.P1Now is the timefor all good mento come to the aid of their party..P2Suppose you want to find the line that contains.IT theirsoyou can change it to.IT the .Now with only three lines in the buffer, it's pretty easyto keep track of what line the word.IT theiris on.But if the buffer contained several hundred lines,and you'd been making changes, deleting and rearranging lines,and so on, you would no longer really know what this linenumber would be.Context searching is simply a method of specifying the desired line,regardless of what its number is,by specifying some context on it..PPThe way to say ``search for a linethat contains this particular string of characters''is to type.P1/\fIstring of characters we want to find\fP/.P2For example,the.uledcommand.P1/their/.P2is a context search whichis sufficient to find the desired line \-it will locate the next occurrence ofthe characters between slashes (``their'').It also sets dot to that lineand prints the line for verification:.P1to come to the aid of their party..P2``Next occurrence'' means that.uledstarts looking for the string at line.UL .+1 ,searches to the end of the buffer,then continues at line 1 and searches to line dot.(That is, the search ``wraps around'' from.UL $to1.)It scans all the lines in the buffer until it either finds the desired lineor gets back to dot again.If the given string of characters can't be found in any line,.uledtypes the error message.P1?.P2Otherwise it prints the line it found..PPYou can do both the search for the desired line.ulandasubstitution all at once, like this:.P1/their/s/their/the/p.P2which will yield.P1to come to the aid of the party..P2There were three parts to that last command:context search for the desired line, make the substitution, print the line..PPThe expression.UL /their/is a context search expression.In their simplest form,all context search expressions are like this \-a string of characters surrounded by slashes.Context searches are interchangeable with line numbers,so they can be used by themselves to find and print a desired line,or as line numbers for some other command, like.UL s .They were used both ways in the examples above..PPSuppose the buffer contains the three familiar lines.P1Now is the timefor all good mento come to the aid of their party..P2Then the.uledline numbers.P1/Now/+1/good//party/\-1.P2are all context search expressions, and they all referto the same line (line 2).To make a change in line 2,you could say.P1/Now/+1s/good/bad/.P2or.P1/good/s/good/bad/.P2or.P1/party/\-1s/good/bad/.P2The choice is dictated only by convenience.You could print all three lines by, for instance.P1/Now/,/party/p.P2or.P1/Now/,/Now/+2p.P2or by any number of similar combinations.The first one of these might be better if you don'tknow how many lines are involved.(Of course, if there were only three lines in the buffer,you'd use.P11,$p.P2but not if there were several hundred.).PPThe basic rule is: a context search expression is.ulthe same asa line number, so it can be used wherever a line number is needed..SHExercise 6:.PPExperiment with context searching.Try a body of text withseveral occurrencesof the same string of characters, and scan through it usingthe same context search..PPTry using context searches as line numbers for thesubstitute, print and delete commands.(They can also be usedwith.UL r ,.UL w ,and.UL a .).PPTry context searching using.UL ?text?instead of.UL /text/ .This scans lines in the buffer in reverse orderrather than normal.This issometimes useful if you go too far while looking for somestring of characters \- it's an easy way to back up..PP(If you get funny results with any of the characters.P1^ \*. $ [ * \e &.P2read the section on ``Special Characters''.).PP.ulEdprovides a shorthand for repeating a context searchfor the same string.For example,the.uledline number.P1/string/.P2will find the next occurrence of.UL string .It often happens that this is not the desired line,so the search must be repeated.This can be done by typing merely.P1//.P2This shorthand stands for ``the most recently usedcontext search expression.''It canalso be used as the first string of the substitutecommand, as in.P1/string1/s//string2/.P2which will find the next occurrence of.UL string1and replace it by.UL string2 .This can save a lot of typing.Similarly.P1??.P2means ``scan backwards for the same expression.''
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -