summaryrefslogtreecommitdiff
path: root/doc/options.doc
blob: 10db8aee155ec4975e3c2aa443ab4072a800c3c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
     Elvis 1.4                     OPTIONS                      Page 5-1


E5.  OPTIONSF

        Options may be set or examined via the colon command "set".  The 
     values of options will affect the operation of later commands.  

        For convenience, options have both a long descriptive name and a 
     short name  which  is  easy  to  type.    You  may  use either name
     interchangably.  I like the short names, myself.  

-1long name       short   type    default         meaning                       -0
autoindent      ai      Bool    noai            auto-indent during input
autoprint       ap      Bool    ap              in EX, print the current line
autowrite       aw      Bool    noaw            auto-write when switching files
charattr        ca      Bool    noca            interpret \fX sequences?
cc              cc      Str     cc="cc -c"      name of the C compiler
columns         co      Num     co=80           width of the screen
digraph         dig     Bool    nodig           recognize digraphs?
directory       dir     Str     dir="/usr/tmp"  where tmp files are kept
edcompatible    ed      Bool    noed            remember ":s//" options
errorbells      eb      Bool    eb              ring bell on error
exrefresh       er      Bool    er              write lines indiviually in EX
flipcase        fc      Str     fc=""           non-ASCII chars flipped by ~
hideformat      hf      Bool    hf              hide text formatter commands
ignorecase      ic      Bool    noic            upper/lowercase match in search
inputmode       im      Bool    noim            start vi in insert mode?
keytime         kt      Num     kt=2            timeout for mapped key entry
keywordprg      kp      Str     kp="ref"        full pathname of shift-K prog
lines           ln      Num     ln=25           number of lines on the screen
list            li      Bool    noli            display lines in "list" mode
magic           ma      Bool    ma              use regular expression in search
make            mk      Str     mk="make"       name of the "make" program
modeline        ml      Bool    noml            are modelines processed?
paragraphs      pa      Str     pa="PPppIPLPQP" names of "paragraph" nroff cmd
readonly        ro      Bool    noro            prevent overwriting of orig file
report          re      Num     re=5            report when 5 or more changes
scroll          sc      Num     sc=12           scroll amount for ^U and ^D
sections        se      Str     se="NHSHSSSEse" names of "section" nroff cmd
shell           sh      Str     sh="/bin/sh"    full pathname of the shell
showmatch       sm      Bool    nosm            show matching ()[]{}
showmode        smd     Bool    nosmd           say when we're in input mode
shiftwidth      sw      Num     sw=8            shift amount for < and >
sidescroll      ss      Num     ss=8            amount of sideways scrolling
sync            sy      Bool    nosy            call sync() often
tabstop         ts      Num     ts=8            width of tab characters
term            te      Str     te="$TERM"      name of the termcap entry
vbell           vb      Bool    vb              use visible alternative to bell
warn            wa      Bool    wa              warn for ! if file modified
wrapmargin      wm      Num     wm=0            wrap long lines in input mode
wrapscan        ws      Bool    ws              at EOF, searches wrap to line 1

        There are three types of options:  Bool,  string,  and  numeric.
     Boolean  options  are made TRUE by giving the name of the option as
     an argument to the "set" command; they are made FALSE by  prefixing
     the name  with  "no".    For  example,  "set  autoindent" makes the
     autoindent option TRUE, and "set noautoindent" makes it FALSE.  








     Elvis 1.4                     OPTIONS                      Page 5-2


        To change the value of a string  or  numeric  option,  pass  the
     "set"  command  the name of the option, followed by an "=" sign and
     the option's new value.  For example, "set tabstop=8" will give the 
     tabstop option a value of 8.  For string options, you  may  enclose
     the new value in quotes.  


   E5.1  AutoIndentF

        During  input  mode, the autoindent option will cause each added
     line to begin with the same amount of  leading  whitespace  as  the
     line above  it.    Without  autoindent,  added  lines are initially
     empty.  


   E5.2  AutoPrintF

        This option only affects EX mode.  If the autoprint  option  on,
     and either the cursor has moved to a different line or the previous 
     command modified the file, then Elvis will print the current line.  


   E5.3  AutoWriteF

        When  you're  editing one file and decide to switch to another -
     via the :tag command, or :next command, perhaps - if  your  current
     file  has  been  modified,  then Elvis will normally print an error
     message and refuse to switch.  

        However, if the autowrite option is on, then  Elvis  will  write
     the modified version of the current file and successfully switch to 
     the new file.  


   E5.4  CCF

        The :cc  command runs the C compiler.  This option should be set
     to the name of your compiler.  


   E5.5  CharAttrF

        Many text formatting programs allow you to designate portions of 
     your text to be underlined, italicized, or  boldface  by  embedding
     the special  strings  \fU,  \fI, and \fB in your text.  The special
     string \fR marks the end of underlined or boldface text.  

        Elvis normally treats those special strings just like any  other
     text.  

        However, if the charattr option is on, then Elvis will interpret 
     those  special strings correctly, to display underlined or boldface
     text on the screen.  (This only works, of course, if your  terminal
     can  display underlined and boldface, and if the TERMCAP entry says
     how to do it.) 








     Elvis 1.4                     OPTIONS                      Page 5-3


   E5.6  COlumnsF

        This is a "read only" option.  You can't change its  value,  but
     you can have Elvis print it.  It shows how wide your screen is.  


   E5.7  DIGraphF

        This  option  is used to enable/disable recognition of digraphs.
     The default value is nodigraph, which means that digraphs will  not
     be recognized.  


   E5.8  DIRectoryF

        Elvis stores text in temporary files.  This option allows you to 
     control which  directory those temporary files will appear in.  The
     default is /usr/tmp.  

        This option can only be set in a .exrc file; after  that,  elvis
     will  have  already  started  making  temporary files in some other
     directory, so it would be too late.  


   E5.9  EDcompatibleF

        This     option     affects     the     behaviour     of     the
     ":s/regexp/text/options" command.    It  is normally off (:se noed)
     which causes all of the  substitution  options  to  be  off  unless
     explicitly given.  

        However, with edcompatible on (:se ed), the substitution command 
     remembers which  options  you  used  last time.  Those same options
     will continue to be used until you change them.    In  edcompatible
     mode,  when  you explicitly give the name of a substitution option,
     you will toggle the state of that option.  

        This all seems very strange to me, but  its  implementation  was
     almost  free  when  I added the ":&" command to repeat the previous
     substitution, so there it is.  


   E5.10  ErrorBellsF

        Elvis normally rings a bell when you do something wrong.    This
     option lets you disable the bell.  


   E5.11  ExRefreshF

        The EX  mode  of Elvis writes many lines to the screen.  You can
     make Elvis either write each line to the screen separately, or save 
     up many lines and write them all at once.  

        The exrefresh option is normally on, so each line is written  to
     the screen separately.  







     Elvis 1.4                     OPTIONS                      Page 5-4


        You  may wish to turn the exrefresh option off (:se noer) if the
     "write" system call is costly on your machine, or if you're using a 
     windowing environment.  (Windowing environments scroll text  a  lot
     faster when you write many lines at once.) 

        This option has no effect in visual command mode or input mode.  


   E5.12  FlipCaseF

        The  flipcase  option  allows  you  to control how the non-ASCII
     characters are altered by the "~" command.  

        The string is divided into pairs of characters.    When  "~"  is
     applied  to  a non-ASCII character, Elvis looks up the character in
     the flipcase string to see which pair it's in, and replaces  it  by
     the other character of the pair.  


   E5.13  HideFormatF

        Many  text  formatters  require  you to embed format commands in
     your text, on lines  that  start  with  a  "."  character.    Elvis
     normally  displays  these  lines  like  any  other text, but if the
     hideformat option is on, then format lines are displayed  as  blank
     lines.  


   E5.14  IgnoreCaseF

        Normally,  when  Elvis  searches  for  text, it treats uppercase
     letters as being different for lowercase letters.  

        When the ignorecase option is on, uppercase  and  lowercase  are
     treated as equal.  


   E5.15  InputModeF

        This  option  allows  you to have Elvis start up in insert mode.
     You can still exit insert mode at any time by hitting the ESC  key,
     as usual.  Usually, this option would be set in your ".exrc" file.  


   E5.16  KeyTimeF

        The   arrow  keys  of  most  terminals  send  a  multi-character
     sequence.  It takes a measurable amount of time for these sequences 
     to be transmitted.  The keytime option allows you  to  control  the
     maximum  amount  of time to allow for an arrow key (or other mapped
     key) to be received in full.  

        The default keytime value  is  2.    Because  of  the  way  UNIX
     timekeeping  works,  the  actual  amount  of time allowed will vary
     slightly, but it will always be between 1 and 2 seconds.  








     Elvis 1.4                     OPTIONS                      Page 5-5


        If you set keytime to 1, then the actual amount of time  allowed
     will be  between  0  and  1  second.   This will generally make the
     keyboard's response be a little faster (mostly for  the  ESC  key),
     but  on those occasions where the time allowed happens to be closer
     to 0 than 1 second, Elvis may fail to  allow  enough  time  for  an
     arrow key's sequence to be received fully.  Ugh.  

        As a special case, you can set keytime to 0 to disable this time 
     limit stuff  altogether.    The  big problem here is: If your arrow
     keys' sequences start with an ESC, then every time you hit your ESC 
     key Elvis will wait...  and wait...  to see if maybe that  ESC  was
     part of an arrow key's sequence.  

        NOTE:  this  option is a generalization of the timeout option of
     the real vi.  


   E5.17  KeywordPrgF

        Elvis has a special keyword lookup feature.  You move the cursor 
     onto a word, and hit shift-K, and Elvis  uses  another  program  to
     look up the word and display information about it.  

        This option says which program gets run.  

        The  default  value  of this option is "ref", which is a program
     that looks up the definition of a function in C.  It looks  up  the
     function name in a file called "refs" which is created by ctags.  

        You  can subtitute other programs, such as an English dictionary
     program or the online manual.  Elvis runs the  program,  using  the
     keyword as its only argument.  The program should write information 
     to stdout.   The program's exit status should be 0, unless you want
     Elvis to print "<<< failed >>>".  


   E5.18  LiNesF

        This "read only" option shows how many lines you screen has.  


   E5.19  LIstF

        In nolist mode (the default), elvis displays text in a  "normal"
     manner  --  with  tabs expanded to an appropriate number of spaces,
     etc.  

        However, sometimes it is useful to have tab characters displayed 
     differently.  In list mode, tabs are displayed as "^I", and  a  "$"
     is displayed at the end of each line.  













     Elvis 1.4                     OPTIONS                      Page 5-6


   E5.20  MAgicF

        The  search  mechanism in Elvis can accept "regular expressions"
     -- strings in which certain characters have special meaning.  

        The magic option is normally on, which causes  these  characters
     to be treated specially.  

        If you turn the magic option off (:se noma), then all characters 
     except ^ and $ are treated literally.  ^ and $ retain their special 
     meanings regardless of the setting of magic.  


   E5.21  MaKeF

        The :make command runs your "make" program.  This option defines 
     the name of your "make" program.  


   E5.22  ModeLineF

        Elvis supports   modelines.     Modelines  are  lines  near  the
     beginning or end of your text file which contain "ex:yowza:", where 
     "yowza" is any EX command.  A typical "yowza"  would  be  something
     like "set ts=4 ca kp=spell".  

        Normally  these  lines are ignored, for security reasons, but if
     you have  "set  modeline"  in  your  .exrc  file  then  "yowza"  is
     executed.  


   E5.23  PAragraphsF

        The  {  and  }  commands  move the cursor forward or backward in
     increments of one paragraph.  Paragraphs may be separated by  blank
     lines, or  by  a "dot" command of a text formatter.  Different text
     formatters use different "dot" commands.  This option allows you to 
     configure Elvis to work with your text formatter.  

        It is assumed that your formatter uses commands that start  with
     a  "."  character  at  the front of a line, and then have a one- or
     two-character command name.  

        The value of the paragraphs option is a  string  in  which  each
     pair  of  characters  is one possible form of your text formatter's
     paragraph command.  


   E5.24  ReadOnlyF

        Normally, Elvis will let you write back any file  to  which  you
     have write  permission.    If you don't have write permission, then
     you can only write the changed version of the file to  a  -1different-0
     file.  









     Elvis 1.4                     OPTIONS                      Page 5-7


        If  you  set  the  readonly  option, then Elvis will pretend you
     don't have write permission to -1any-0 file you edit.    It  is  useful
     when  you  really  only mean to use Elvis to look at a file, not to
     change it.  This way you can't change it accidentally.  

        This option is normally off, unless you use the "view" alias  of
     Elvis.  "View" is like "vi" except that the readonly option is on.  


   E5.25  REportF

        Commands in  Elvis  may  affect  many  lines.  For commands that
     affect a lot of lines, Elvis will output a message saying what  was
     done and  how  many lines were affected.  This option allows you to
     define what "a lot of lines" means.   The  default  is  5,  so  any
     command  which  affects  5 or more lines will cause a message to be
     shown.  


   E5.26  SCrollF

        The ^U and ^D keys normally scroll backward or forward by half a 
     screenful, but this is adjustable.  The value of this  option  says
     how many lines those keys should scroll by.  


   E5.27  SEctionsF

        The  [[  and  ]] commands move the cursor backward or forward in
     increments of 1  section.    Sections  may  be  delimited  by  a  {
     character  in  column  1  (which is useful for C source code) or by
     means of a text formatter's "dot" commands.  

        This option allows you to configure Elvis to work with your text 
     formatter's "section" command, in exectly the  same  way  that  the
     paragraphs  option  makes it work with the formatter's "paragraphs"
     command.  


   E5.28  SHellF

        When Elvis forks  a  shell  (perhaps  for  the  :!    or  :shell
     commands) this  is  the  program  that is uses as a shell.  This is
     "/bin/sh" by default, unless you have set the  SHELL  (or  COMSPEC,
     for  MS-DOS)  environment variable, it which case the default value
     is copied from the environment.  


   E5.29  ShiftWidthF

        The < and > commands shift text left or right  by  some  uniform
     number of  columns.    The  shiftwidth option defines that "uniform
     number".  The default is 8.  










     Elvis 1.4                     OPTIONS                      Page 5-8


   E5.30  ShowMatchF

        With showmatch set, in input mode every time you hit one of )}], 
     Elvis will momentarily move the cursor to the matching ({[.  


   E5.31  ShowMoDeF

        In visual mode, it is easy  to  forget  whether  you're  in  the
     visual command  mode or input/replace mode.  Normally, the showmode
     option is off, and you haven't a clue as to which mode  you're  in.
     If  you  turn the showmode option on, though, a little message will
     appear in the lower right-hand corner of your screen,  telling  you
     which mode you're in.  


   E5.32  SideScrollF

        For long lines, Elvis scrolls sideways.  (This is different from 
     the  real  vi,  which wraps a single long line onto several rows of
     the screen.) 

        To minimize the number of scrolls needed, Elvis moves the screen 
     sideways by several characters at a time.  The value of this option 
     says how many characters' widths to scroll at a time.  

        Generally, the faster your screen can be redrawn, the lower  the
     value you will want in this option.  


   E5.33  SYncF

        If  the system crashes during an edit session, then most of your
     work can be recovered from the temporary file that  elvis  uses  to
     store changes.   However, sometimes the OS will not copy changes to
     the hard disk immediately, so recovery might not be possible.   The
     [no]sync option lets you control this.  

        In  nosync mode (which is the default, for UNIX), elvis lets the
     operating system control when data is written to the disk.  This is 
     generally faster.  

        In sync mode (which is the default, for  MS-DOS),  elvis  forces
     all changes  out  to  disk  every  time you make a change.  This is
     generally safer, but slower.  It can also be a rather rude thing to 
     do on a multi-user system.  


   E5.34  TabStopF

        Tab characters are normally  8  characters  wide,  but  you  can
     change their widths by means of this option.  











     Elvis 1.4                     OPTIONS                      Page 5-9


   E5.35  TErmF

        This "read only" option shows the name of the termcap entry that 
     Elvis is using for your terminal.  


   E5.36  VBellF

        If your termcap entry describes a visible alternative to ringing 
     your terminal's bell, then this option will say whether the visible 
     version gets used or not.  Normally it will be.  

        If your termcap does NOT include a visible bell capability, then 
     the vbell option will be off, and you can't turn it on.  


   E5.37  WArnF

        If you have modified a file but not yet written it back to disk, 
     then Elvis will normally print a warning before executing a ":!cmd" 
     command.  However, in nowarn mode, this warning is not given.  

        Elvis  also  normally prints a message after a successful search
     that wrapped at EOF.  The [no]warn option  can  also  disable  this
     warning.  


   E5.38  WrapMarginF

        Normally   (with  wrapmargin=0)  Elvis  will  let  you  type  in
     extremely long lines, if you wish.  

        However,  with  warpmargin  set  to  something  other   that   0
     (wrapmargin=10  is nice), Elvis will automatically cause long lines
     to be "wrapped" on a word break for lines longer than  wrapmargin's
     setting.  


   E5.39  WrapScanF

        Normally,  when  you search for something, Elvis will find it no
     matter where it is in  the  file.    Elvis  starts  at  the  cursor
     position, and  searches forward.  If Elvis hits EOF without finding
     what you're looking for, then it wraps around to continue searching 
     from line 1.  

        If you turn off the wrapscan option (:se nows), then when  Elvis
     hits EOF during a search, it will stop and say so.