Extended regular expressions were introduced in Section 8.4. vile provides essentially the same facilities as nvi's extended option. The syntax is somewhat different though, relying upon additional backslash-escaped characters:
[60]For the pedantic among you, it also matches identifiers that start with a leading digit; usually this isn't much of a problem.
vile allows the escape sequences \b, \f, \r, \t, and \n to appear in the replacement part of a substitute command. They stand for backspace, formfeed, carriage return, tab and newline, respectively. Also, from the vile documentation:
Note that vile mimics perl's handling of \u\L\1\E instead of vi's. Given :s/\(abc\)/\u\L\1\E/ vi will replace with abc whereas vile and perl will replace with Abc. This is somewhat more useful for capitalizing words.
Example .vilemenu File
# lines beginning with 'C' define a menu heading C:Xvile # the following four entries are Buttons invoking menu # system builtins B:New:new_xvile B:Edit .vilerc:edit_rc B:Parse .vilerc:parse_rc B:Edit .vilemenu:edit_mrc B:Quit:quit # C:Editing B:Search Forward...:cmd search-forward B:Search Backward...:cmd search-reverse # lines beginning with S are separators S B:Manual for...:29 S # where the command to be executed is given as a number, like the # two above and the three below, the menu system will translate # this to an invocation of the command execute-macro-<number>. B:Indent Level...:31 B:Window Title...:35 B:Font...:36 # C:Buffers # run a command name (in this case "toggle-buffer") by simply # naming it B:Toggle Show:toggle-buffer # one line starting with 'L' is allowed, at the end of a menu -- # it causes a buffer list menu to be created. L:list_buff # C:Fonts B:5x8:setv $font 5x8 B:7x14:setv $font 7x14 B:8x13:setv $font 8x13 B:8x16:setv $font 8x16 B:9x15:setv $font 9x15 B:10x20:setv $font 10x20 B:12x24:setv $font 12x24 # C:Attributes B:C/C++:30 B:Pascal:32 C:Help:help B:About:version S B:General:help B:Bindings:describe-bindings B:Motions:describe-motions B:Operators:describe-operators S # prefixing a command with "cmd" will force it to be run as from # the ':' line, so that it can prompt for input correctly. B:Apropos...:cmd apropos B:Apropos...:apropos set B:On Function...:cmd describe-function B:On Key...:describe-key >s S B:Settings:setall B:Variables:show-variables B:Registers:show-registers
Copyright © 2003 O'Reilly & Associates. All rights reserved.