-
Notifications
You must be signed in to change notification settings - Fork 26
/
elvisopt.html
4000 lines (3619 loc) · 215 KB
/
elvisopt.html
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
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<html><head>
<title>Elvis-2.2_1 Options</title>
</head><body>
<h1>6. OPTIONS</h1>
Options are a primary means of configuring the appearance and behavior of Elvis.
They are set via the <a href="elvisex.html#set">:set</a> command, or the
<a href="elvisex.html#let">:let</a> command.
The options' values are examined directly by Elvis internally, and can also
be displayed via <a href="elvisex.html#set">:set</a>, or in an expression.
The following tables list the names, type, group, and description of each
option.
One table lists <a href="#INDEX">all options alphabetically,</a> and the other
breaks list down into <a href="#GROUP">groups of related options.</a>
I recommend the latter, since there are <em>a lot</em> of options.
<p>Most options have two <em>names</em> -- a short name that is easy to type in,
and a longer descriptive name.
You can type in either name; they work equivalently.
Elvis always outputs the longer name when it is listing values.
<p>Each option accepts a specific <em>type</em> of value.
The most common types are <strong>boolean, number, string, one-of,</strong> and
<strong>tab-list,</strong> but some options have weird types.
<code>String</code> options can be set to any value (although not all possible values
make sense).
<code>One-of</code> options can only be set a single value from a specific list of legal values.
(The list varies from one option to another.)
<code>Boolean</code> options are either true or false;
see the <a href="elvisex.html#set">:set</a> and
<a href="elvisex.html#let">:let</a> commands for a description of how to
set their values.
<code>Number</code> options can only be set to a numeric value, often only within a limited range.
<code>Tab-list</code> options can be set to a comma-delimited list of numbers, in which each
number represents the width of a column; for long lines, Elvis assumes the
last number should be repeated.
<p>Each option serves as an attribute of something.
The <a name="GRP"><em>group</em></a> of an option designates what it is an attribute of.
For example, the "filename" option is an attribute of buffers; when you
switch to a different buffer, it will have a different value for the
"filename" option.
Other options are attributes of windows, or display modes, etc.
Here's a complete list:
<pre graphic>
.---------.-------------------------------------------------------.
| GROUP | DESCRIPTION |
|---------|-------------------------------------------------------|
| global | Global options |
| user | <a href="#USER">User variables a - z</a> (Global, useful in ex scripts) |
| lp | <a href="#LPR">Printing options</a> |
| buf | Attributes of each buffer |
| win | Attributes of each window |
| syntax | Attributes of the "syntax" display mode |
| x11 | Attributes of the "<a href="elvisgui.html#x11">x11</a>" user interface |
| windows | Attributes of the "<a href="elvisgui.html#windows">windows</a>" user interface |
| termcap | Attributes of the "<a href="elvisgui.html#termcap">termcap</a>" user interface |
| vio | Attributes of the "<a href="elvisgui.html#vio">vio</a>" user interface (OS/2 console) |
| win32 | Attributes of the text-mode Win32 port |
| au | Used only when executing an autocmd |
| bang | Used only when writing a file |
^---------^-------------------------------------------------------^
</pre>
You don't need to know an option's group to set that option.
You can output the values of all options in a group
by passing the group name followed by a question mark to the
<a href="elvisex.html#set">:set</a> command.
The following example outputs all of the attributes of the current buffer:
<pre>
:set buf?
</pre>
<h2><a name="GROUP">6.1 Options, grouped by function</a></h2>
<menu>
<li><a href="#FILESAVE">6.2 Options that relate the buffer to a file</a>
<li><a href="#BUFFER">6.3 Statistics about a buffer</a>
<li><a href="#MOVE">6.4 Options that affect movement commands</a>
<li><a href="#INPUT">6.5 Options that affect input mode</a>
<li><a href="#EXOPTS">6.6 Ex options</a>
<li><a href="#WINDOW">6.7 Window statistics</a>
<li><a href="#VIEW">6.8 Options affecting the appearance of text</a>
<li><a href="#MODE">6.9 Options for a particular display mode</a>
<li><a href="#SPELL">6.10 Spelling options</a>
<li><a href="#MSG">6.11 Messages</a>
<li><a href="#WORDS">6.12 Words</a>
<li><a href="#GUI">6.13 Options for a particular user interface</a>
<li><a href="#REGEXP">6.14 Regular expression options</a>
<li><a href="#TAG">6.15 Tag options</a>
<li><a href="#DRAW">6.16 Window update parameters</a>
<li><a href="#CACHE">6.17 Cache options</a>
<li><a href="#SYSTEM">6.18 Options that describe the system</a>
<li><a href="#EXTERNAL">6.19 External programs</a>
<li><a href="#DIR">6.20 Directory names</a>
<li><a href="#INIT">6.21 Initialization options</a>
<li><a href="#MAP">6.22 Keyboard map options</a>
<li><a href="#AUTOCMD">6.23 Auto command options</a>
<li><a href="#LPR">6.24 Printing options</a>
<li><a href="#PREVIOUS">6.25 Previous arguments</a>
<li><a href="#UNSUP">6.26 Unsupported options</a>
<li><a href="#USER">6.27 User variables</a>
</menu>
<h2><a name="FILESAVE">6.2 Options that relate the buffer to a file</a></h2>
<pre graphic>.---------------------.---------.--------.-----------------------------.
| OPTION NAMES | TYPE | GROUP | DESCRIPTION |
|---------------------|---------|--------|-----------------------------|
| <a href="#filename">filename, file</a> | String | buf | name of file in buffer |
| <a href="#bufname">bufname, buffer</a> | String | buf | name of buffer |
| <a href="#bufid">bufid, bufferid</a> | Number | buf | ID number of user buffer |
| <a href="#retain">retain, ret</a> | Boolean | buf | keep buffer in session file |
| <a href="#modified">modified, mod</a> | Boolean | buf | buffer differs from file |
| <a href="#edited">edited, samename</a> | Boolean | buf | buffer loaded from filename |
| <a href="#newfile">newfile, new</a> | Boolean | buf | filename doesn't exist yet |
| <a href="#readonly">readonly, ro</a> | Boolean | buf | don't overwrite filename |
| <a href="#defaultreadonly">defaultreadonly, dro</a>| Boolean | global | assume all files readonly |
| <a href="#locked">locked, lock</a> | Boolean | win | prevent any alterations |
| <a href="#autowrite">autowrite, aw</a> | Boolean | global | save file before switching |
| <a href="#writeany">writeany, wa</a> | Boolean | global | don't warn of existing file |
| <a href="#timestamp">timestamp, time</a> | String | buf | time when file was modified |
| <a href="#backup">backup, bk</a> | Boolean | global | make *.bak file before write|
| <a href="#undolevels">undolevels, ul</a> | Number | buf | number of undoable commands |
| <a href="#beautify">beautify, bf</a> | Boolean | global | strip ctrl chars from files |
| <a href="#bang">bang</a> | Boolean | bang | writing with a '!' ? |
| <a href="#userprotocol">userprotocol, up</a> | Boolean | buf | URL, user-defined protocol |
^---------------------^---------^--------^-----------------------------^
</pre>
<dl>
<dt><a name="filename">filename, file <em>(String, buf)</em></a>
<dd>The <em>filename</em> option stores the name of the
text file whose text was initially loaded into the buffer.
If no file name is known (e.g., for an internal buffer or a new, untitled
buffer) then this will be an empty string.
The <a href="elvisex.html#file">:file</a> command can be used to change the filename.
Also, the filename is set automatically when you write the buffer out,
if it had no filename before.
<dt><a name="bufname">bufname, buffer <em>(String, buf)</em></a>
<dd>The <em>bufname</em> option stores the name of the buffer.
Usually this will be the same as the filename, but it can be different.
Every buffer has a bufname, even if it doesn't have a filename.
The name of a buffer can be changed via the <a href="elvisex.html#buffer">:buffer</a> command.
<dt><a name="bufid">bufid, bufferid <em>(Number, buf)</em></a>
<dd>For user buffers, the <em>bufid</em> option stores
a unique id number for each buffer.
Anyplace where you can use the <code>(</code><var>name</var><code>)</code> notation
to specify a buffer, you can also use <code>(</code><var>n</var><code>)</code>
as an abbreviation for the buffer whose bufid=<var>n</var>.
Also, for filenames you can use <code>#</code><var>n</var> for the filename of
the buffer whose bufid=<var>n</var>.
<dt><a name="retain">retain, ret <em>(Boolean, buf)</em></a>
<dd>The <em>retain</em> option indicates whether the buffer
is intended to survive past the end of this Elvis process.
If this option is true and the <a href="#tempsession">tempsession</a> option is
false (":set retain notempsession") then Elvis will allow you to exit even if
this buffer hasn't been saved since its last change.
When you restart the session, the buffer will still exist with all its changed
text intact. By default, the retain option is false (":set noretain") because
that mimics traditional vi behavior.
<p>It also prevents Elvis from destoying the buffer during an edit session.
Normally, Elvis will destroy buffers if they aren't shown in any window, and
their contents haven't been modified since they were loaded or written.
<dt><a name="modified">modified, mod <em>(Boolean, buf)</em></a>
<dd>The <em>modified</em> option indicates whether the
buffer has been modified since the last time it was written out completely.
<dt><a name="edited">edited, samename <em>(Boolean, buf)</em></a>
<dd>The <em>edited</em> option indicates whether the
filename option has been modified since the last time it was written out.
If this option is false, Elvis will be more cautious about writing the file
out.
<dt><a name="newfile">newfile, new <em>(Boolean, buf)</em></a>
<dd>The <em>newfile</em> option indicates that when the buffer was created
it tried to load the file identified by the filename option, but that file
did not exist at that time.
<dt><a name="readonly">readonly, ro <em>(Boolean, buf)</em></a>
<br><a name="defaultreadonly">defaultreadonly, dro <em>(Boolean, global)</em></a>
<dd>The <em>readonly</em> option indicates that when the buffer was loaded,
the original file was marked as being unwritable. Either that, or the
<em>defaultreadonly</em> option was set to true
(probably via the <kbd>-R</kbd> command line flag).
This option has two purposes:
it gives you a way to detect that you can't write the file out,
and it protects you from writing out a file that you meant to just look at
without modifying.
<dt><a name="locked">locked, lock <em>(Boolean, win)</em></a>
<dd>The <em>locked</em> option prevents you from modifying the buffer.
Nearly any command which would modify the buffer will fail.
The only exceptions are "undo" commands, and commands such as
<a href="elvisex.html#edit">:e</a> which merely reload the buffer from
its original file.
<dt><a name="autowrite">autowrite, aw <em>(Boolean, global)</em></a>
<dd>Setting the <em>autowrite</em> option allows Elvis to
automatically write the current buffer out to a file if it has been modified,
before switching to another buffer. By default this option is off, so if you try to switch away
from a modified buffer, Elvis will just give an error message and refuse to
switch until you manually write the file out.
<dt><a name="writeany">writeany, wa <em>(Boolean, global)</em></a>
<dd>Elvis tries to save you from accidentally
clobbering existing files. Setting the <em>writeany</em> option disables this
protection; Elvis will allow you to overwrite any file that the operating
system will allow, without giving any warnings.
<dt><a name="timestamp">timestamp, time <em>(String, buf)</em></a>
<dd>This option has no hardcoded purpose, but the default
<a href="elvisses.html#elvis.arf">elvis.arf</a>,
<a href="elvisses.html#elvis.bwf">elvis.bwf</a>, and
<a href="elvisses.html#elvis.awf">elvis.awf</a> scripts use it
store the modification time of a file
(as detected by the <a href="elvisexp.html#time">time()</a> function),
and detect whether the file has been modified by some other program
while you were editing it in Elvis.
<dt><a name="backup">backup, bk <em>(Boolean, global)</em></a>
<dd>The <em>backup</em> option isn't used internally
by Elvis, but the default <a href="elvisses.html#elvis.bwf">elvis.bwf</a> file
checks this flag to determine whether it should attempt to make a backup
of a file it is about to overwrite.
By default, this option is false, so backups will not be made.
<dt><a name="undolevels">undolevels, ul <em>(Number, buf)</em></a>
<dd>For each buffer, the <em>undolevels</em> option
indicates the number of "undo" versions Elvis will maintain.
Each undo level requires at least three blocks of the session file (typically
2K bytes each, 6K total) so you probably don't want to set this higher than
100 or so, and you probably want to keep it much lower.
The default is 0, which is a special case that mimics vi's traditional behavior.
<dt><a name="beautify">beautify, bf <em>(Boolean, global)</em></a>
<dd>If the <em>beautify</em> option is true,
then whenever Elvis reads text from a file or external program,
it will strip any control characters other than tab, linefeed or formfeed.
This is false by default.
<dt><a name="bang">bang <em>(Boolean, bang)</em></a>
<dd>The <em>bang</em> option only exists while executing
the <a href="elvisini.html#elvis.bwf">elvis.bwf</a> and
<a href="elvisini.html#elvis.awf">elvis.awf</a> scripts, when writing a file.
It indicates whether the write was forced (<a href="elvisex.html#write">:w!</a>)
or normal (<a href="elvisex.html#write">:w</a> or
<a href="elvisvi.html#ZZ">ZZ</a>).
Those scripts can check the value of <code>bang</code> and skip some tests if
it is set.
For example, the default version of <code>elvis.bwf</code> checks the
<a href="#timestamp">timestamp</a> before writing the file,
unless the bang option is set.
<dt><a name="userprotocol">userprotocol, up <em>(Boolean, buf)</em></a>
<dd>The <em>userprotocol</em> option indicates whether the buffer was loaded
via a <a href="elvistip.html#PROTO">user-defined protocol</a>.
It can be handy in automatically executed scripts.
<p>Initially, all buffers are created with <code>userprotocol</code> turned off.
It remains off while the <code>elvis.brf</code> is executed, and then turned
on immediately before the <code>read<var>PROTOCOL</var></code> alias is
executed.
The default <code>elvis.arf</code> script is sensitive to this value;
it skips some setup steps when <code>userprotocol</code> is set, on the
theory that if you really needed those options to be set then you would
have either set them in the <code>read<var>PROTOCOL</var></code> alias,
or you would have at least turned off <code>userprotocol</code> there.
</dl>
<h2><a name="BUFFER">6.3 Statistics about a buffer</a></h2>
<pre graphic>.---------------------.---------.--------.-----------------------------.
| OPTION NAMES | TYPE | GROUP | DESCRIPTION |
|---------------------|---------|--------|-----------------------------|
| <a href="#binary">binary, bin</a> | Boolean | global | -b flag for binary files |
| <a href="#readeol">readeol, reol</a> | One of | buf | newline mode when reading |
| <a href="#writeeol">writeeol, weol</a> | One of | global | newline mode when writing |
| <a href="#bufchars">bufchars, bc</a> | Number | buf | number of characters |
| <a href="#buflines">buflines, bl</a> | Number | buf | number of lines |
| <a href="#partiallastline">partiallastline, pll</a>| Boolean | buf | file didn't end with newline|
| <a href="#errlines">errlines</a> | Number | buf | buflines when :make was run |
| <a href="#internal">internal</a> | Boolean | buf | Elvis requires this buffer |
| <a href="#putstyle">putstyle, ps</a> | One of | buf | type of text in a cut buffer|
^---------------------^---------^--------^-----------------------------^
</pre>
<dl>
<dt><a name="binary">binary, bin <em>(Boolean, global)</em></a>
<dd>The <em>binary</em> option indicates whether Elvis was invoked with the
"-b" flag for working with binary files.
It affects the way the default <a href="#readeol">readeol</a> value is chosen
for new buffers.
If <code>binary</code>, then readeol=binary.
If <code>nobinary</code> readeol=text except that the default
<a href="elvisses.html#elvis.brf">elvis.brf</a> file will
try to guess a better value .
the default is <code>nobinary</code>.
<dt><a name="readeol">readeol, reol <em>(One of, buf)</em></a>
<dd>The <em>readeol</em> option determines how Elvis reads the file into a buffer.
It can be one of the following:
<ul>
<li><strong>unix</strong> -
The file is opened in binary mode, and any Line Feed characters in the
file are converted to newline characters in the buffer.
<li><strong>dos</strong> -
The file is opened in binary mode, and any Carriage Return/Line Feed pairs
from the file are converted to newline characters in the buffer.
<li><strong>mac</strong> -
The file is opened in binary mode, and any Carriage Return characters from
the file are converted to newline characters in the buffer.
<li><strong>text</strong> -
The file is opened in text mode, and no other conversion takes place.
<li><strong>binary</strong> -
The file is opened in binary mode, and no conversion takes place.
</ul>
The compiled-in default is "binary" or "text", depending on the
<a href="#binary">binary</a> option, but the standard
<a href="elvisses.html#elvis.brf">elvis.brf</a> file may change "text" to a
file-dependent value via the <a href="elvisexp.html#fileeol">fileeol()</a>
function.
<dt><a name="writeeol">writeeol, weol <em>(One of, buf)</em></a>
<dd>The <em>writeeol</em> option influences how Elvis writes buffers out to a
file.
If a buffer's <code>readeol</code> option is set to "binary", then the value of
<code>writeeol</code> is ignored for that buffer; the file will be written in binary.
Otherwise it can be one of the following to determine the output format:
<ul>
<li><strong>unix</strong> -
The file is opened in binary mode, and newlines are written out as Line Feed
characters.
<li><strong>dos</strong> -
The file is opened in binary mode, and newlines are written out as Carriage
Return/Line Feed pairs.
<li><strong>mac</strong> -
The file is opened in binary mode, and newlines are written out as
Carriage Return characters.
<li><strong>text</strong> -
The file is opened in text mode, and no conversion takes place.
<li><strong>binary</strong> -
The file is opened in binary mode, and no conversion takes place.
<li><strong>same</strong> -
The value of the <code>readeol</code> option is used to control the output format.
</ul>
The default value is "same".
You might want to change that to some other mode to force the file to be
written in a specific format; for example, setting it to "text" will cause
a non-binary file to be written in the local text format.
<dt><a name="bufchars">bufchars, bc <em>(Number, buf)</em></a>
<br><a name="buflines">buflines, bl <em>(Number, buf)</em></a>
<dd>The <em>bufchars</em> and <em>buflines</em> options indicate the number of
characters and lines in the buffer, respectively.
The buflines option works by counting newline characters; it is unaffected
by vagaries of the display mode.
These options can't be set.
<dt><a name="partiallastline">partiallastline, pll <em>(Boolean, buf)</em></a>
<dd>The <em>partiallastline</em> option indicates whether the file's last line
ended with a newline.
Text files should always end with a newline.
Traditionally, when vi loaded a file that contained a partial last line,
it would append a newline to the edit buffer to complete that last line.
The extra newline would be written out when the buffer was saved to a file.
That's great for vi, but Elvis can edit binary files as well as text, and
appending newlines onto binary files could cause some problems.
So Elvis appends a newline just like vi, but also sets the
<code>partiallastline</code> option to remind itself that when the buffer
is saved in binary mode, the last newline should be omitted.
Also, the <a href="elvisdm.html#hex">hex display mode</a> is smart enough
to hide the added newline when this option is set.
<dt><a name="errlines">errlines <em>(Number, buf)</em></a>
<dd>The <em>errlines</em> option is used to store the
number of lines that were in the buffer when the last
<a href="elvisex.html#make">:make</a> or <a href="elvisex.html#cc">:cc</a>
command was run.
Any difference between buflines and errlines is used to adjust the line
numbers reported in any error messages, to compensate for lines which
have been inserted or deleted since then.
<dt><a name="internal">internal <em>(Boolean, buf)</em></a>
<dd>The <em>internal</em> option indicates that Elvis
uses the buffer internally. Such buffers can't be deleted.
<dt><a name="putstyle">putstyle, ps <em>(One of, buf)</em></a>
<dd>The <em>putstyle</em> option is only relevant for
cut buffers.
It indicates whether the cut buffer contains characters, whole lines, or
a rectangular area.
It is set automatically whenever you yank or cut text into a cut buffer;
when you put (paste) the contents of that buffer, Elvis checks the value
of this option to determine how the text should be inserted into your edit
buffer.
</dl>
<h2><a name="MOVE">6.4 Options that affect movement commands</a></h2>
<pre graphic>.---------------------.---------.--------.-----------------------------.
| OPTION NAMES | TYPE | GROUP | DESCRIPTION |
|---------------------|---------|--------|-----------------------------|
| <a href="#matchchar">matchchar, mc</a> | String | global | characters matched by % |
| <a href="#paragraphs">paragraphs, para</a> | String | buf | nroff paragraph commands |
| <a href="#sections">sections, sect</a> | String | buf | nroff section commands |
| <a href="#tweaksection">tweaksection, twks</a> | Boolean | global | allow text before { section?|
| <a href="#sentenceend">sentenceend, se</a> | String | global | punct at end of sentence |
| <a href="#sentencequote">sentencequote, sq</a> | String | global | punct allowed after se |
| <a href="#sentencegap">sentencegap, sg</a> | Number | global | spaces required after sq |
| <a href="#scroll">scroll, scr</a> | Number | win | scroll amount for ^D/^U |
^---------------------^---------^--------^-----------------------------^
</pre>
<dl>
<dt><a name="matchchar">matchchar, mc <em>(String, global)</em></a>
<dd>The <em>matchchar</em> option stores a list of matching character pairs,
for use by the <a href="elvisvi.html#pct">%</a> visual command.
In each pair, the first character should be an opening parenthesis (or whatever)
and the second character should be the corresponding closing parenthesis.
If both characters are identical, then the <a href="elvisvi.html#pct">%</a>
command will try to guess whether it should search forward or backward.
The default value is <code>mc=[]{}()</code>, but you may wish to add
<code>:set mc=[]{}()<>\"\"</code> to your ~/.exrc (or ~/elvis.rc) file.
<p>If your copy of Elvis was compiled with text objects enabled
(i.e., if <a href="elvisex.html#calculate">:calc</a> <a href="elvisexp.html#feature">feature("textobj")</a> returns <code>true</code>)
then the <code>matchchar</code> option may also contain the names of
text objects.
The most useful example of this is probably <code>:set mc=[]{}()ax</code>
which allows the <a href="elvisvi.html#pct">%</a> command to bounce between
the endpoints of an XML tag pair.
<dt><a name="paragraphs">paragraphs, para <em>(String, buf)</em></a>
<br><a name="sections">sections, sect <em>(String, buf)</em></a>
<dd>The <em>paragraphs</em> option stores a list of
two-letter nroff paragraph commands. This list is used by the
<a href="elvisvi.html#ocur">{</a>
and <a href="elvisvi.html#ccur">}</a> movement commands.
Similarly, the <em>sections</em> option stores a list
of section commands, affecting the <a href="elvisvi.html#obra">[[</a> and
<a href="elvisvi.html#cbra">]]</a> commands.
Their defaults are <code>paragraphs="PPppIPLPQP"</code> and
<code>sections="NHSHSSSEse".</code>
<dt><a name="tweaksection">tweaksection, twks <em>(Boolean, global)</em></a>
<dd>In addition to the <a href="#sections">sections</a> option described above,
the <a href="elvisvi.html#obra">[[</a>, <a href="elvisvi.html#cbra">]]</a>,
and <a href="elvisvi.html#gd">gd</a> commands
also allow sections to start on a '{' line.
This is handy when editing C/C++/Java code.
Traditionally, the '{' had to be the first character on the line, but that
can be a problem because Perl and some C/C++/Java coding styles
like to put the '{' on the end of the function header line.
Even Elvis' own <a href="elvisex.html#alias">:alias</a> syntax uses this style.
To support this style, Elvis normally tweaks the definition of a section to
allow any <em>unindented</em> text to appear before the '{' character.
<p>The <code>tweaksection</code> option is normally on, so Elvis allows
unindented text before the '{'.
Turning it off will cause Elvis to use the traditional definition of sections.
<dt><a name="sentenceend">sentenceend, se <em>(String, global)</em></a>
<br><a name="sentencequote">sentencequote, sq <em>(String, global)</em></a>
<br><a name="sentencegap">sentencegap, sg <em>(Number, global)</em></a>
<dd>The <em>sentenceend, sentencequote,</em> and <em>sentencegap</em> options
all affect the <a href="elvisvi.html#open">(</a> and
<a href="elvisvi.html#close">)</a> sentence motion commands.
The sentenceend option is a list of punctuation characters which can appear
at the end of a sentence. The sentencegap option is the number spaces that
must follow a sentenceend character in order for it to count as the end of a
sentence. The sentencequote option is a list of punctuation characters that
can appear between the sentenceend character and the spaces.
Their defaults are <code>sentenceend="?!.", sentencequote=")\"",</code>
and <code>sentencegap=2,</code> which meets the proposed POSIX specifications.
<dt><a name="scroll">scroll, scr <em>(Number, win)</em></a>
<dd>The <em>scroll</em> option indicates the number of
lines that the <a href="elvisvi.html#^U">^U</a> and
<a href="elvisvi.html#^D">^D</a> commands should scroll the screen by.
Its default value is 12.
</dl>
<h2><a name="INPUT">6.5 Options that affect input mode</a></h2>
<pre graphic>.---------------------.---------.--------.-----------------------------.
| OPTION NAMES | TYPE | GROUP | DESCRIPTION |
|---------------------|---------|--------|-----------------------------|
| <a href="#autoindent">autoindent, ai</a> | Boolean | buf | auto-indent new text |
| <a href="#inputtab">inputtab, it</a> | One-Of | buf | input mode's (Tab) key |
| <a href="#smarttab">smarttab, sta</a> | Boolean | global | if indenting, (Tab) shifts |
| <a href="#completebinary">completebinary, cob</a> | Boolean | global | complete names of binaries? |
| <a href="#autotab">autotab, at</a> | Boolean | buf | allow autoindent to use '\t'|
| <a href="#tabstop">tabstop, ts</a> | Tab-List| buf | widths of tabstop columns |
| <a href="#shiftwidth">shiftwidth, sw</a> | Tab-List| buf | width used by < and > |
| <a href="#textwidth">textwidth, tw</a> | Number | buf | width for word-wrap, or 0 |
| <a href="#wrapmargin">wrapmargin, wm</a> | (weird) | win | set textwidth from right |
| <a href="#digraph">digraph, dig</a> | Boolean | global | allow X-backspace-Y entry |
| <a href="#cleantext">cleantext, ct</a> | Packed | global | Rules for erasing old text |
^---------------------^---------^--------^-----------------------------^
</pre>
<dl>
<dt><a name="autoindent">autoindent, ai <em>(Boolean, buf)</em></a>
<dd>Setting the <em>autoindent</em> option causes Elvis
to automatically insert whitespace at the start of each line, to make it line
up with the preceding line.
This is convenient when you're editing C source code.
It is off by default.
<dt><a name="inputtab">inputtab, itab <em>(One-Of, buf)</em></a>
<dd>The <em>inputtab</em> option controls the behavior
of the <kbd>Tab</kbd> key. It can be set to one of the following values:
<ul>
<li><strong>tab</strong> - insert an actual tab character. This is the
traditional vi behavior, and the default for user buffers.
<li><strong>spaces</strong> - insert enough space characters to look like a
tab character.
<li><strong>filename</strong> - attempt filename completion on the preceding
word. Normally this only completes the names of text files, but you can
set the <a href="#completebinary">completebinary</a> option to allow
binary file names to be completed too.
<li><strong>identifier</strong> - attempt tag name completion on the
preceding word. If the word is already complete, or if cursor isn't
at the end of a word, then it inserts a plain tab character.
This can be handy when you're editing source code.
<li><strong>ex</strong> - a smarter version of filename completion,
it knows enough about ex command line syntax to avoid some tabbing
mistakes that the <code>filename</code> setting can make.
It can also complete ex command names, tag names, option names,
and option values.
This is the default for the <code>(Elvis ex history)</code> buffer,
which is used for entering in ex commands.
</ul>
<dt><a name="smarttab">smarttab, sta <em>(Boolean, global)</em></a>
<dd>The <em>smarttab</em> option only affects the
behavior of the <kbd>Tab</kbd> key in input mode,
when the cursor is in the indentation portion of a line
-- before the first non-whitespace character.
If this option is true, then <kbd>Tab</kbd> is treated like <kbd>^T</kbd>,
so the line is shifted rightward by one shiftwidth.
By default this option is false, so the <kbd>Tab</kbd> key is treated normally
(in accordance with the <a href="#inputtab">inputtab</a> option).
<dt><a name="completebinary">completebinary, cob <em>(Boolean, global)</em></a>
<dd>The <em>completebinary</em> option controls
whether binary files are included in the list of possible filename completions.
The default setting is <code>nocompletebinary</code>, so binary files are
omitted.
This is handy when you're editing source code -- if your directory contains
"foo.c" and "foo.o" (or "FOO.OBJ" in the Land of the Lost), then typing
<code>f-o-o-TAB</code> will complete the "foo.c" name.
<dt><a name="autotab">autotab, at <em>(Boolean, buf)</em></a>
<dd>The <em>autotab</em> option affects the behavior of
the <a href="elvisvi.html#lt"><</a> and <a href="elvisvi.html#gt">></a>
operator commands, and the <kbd>^D</kbd> and <kbd>^T</kbd> input mode
keystrokes.
If autotab is true then Elvis will include tab characters in the indentation
whitespace;
if it is false then the indentation whitespace will consist entirely of space
characters.
By default, it is true.
<p>Note that if you start with a buffer which contains no tabs, and do a
"<code>:set inputtab=spaces noautotab</code>" then no amount of editing will
result in the buffer containing tabs... unless you get tricky with
<kbd>^V</kbd> or something.
<dt><a name="tabstop">tabstop, ts <em>(Tab-List, buf)</em></a>
<dd>The <em>tabstop</em> option affects the way tab
characters are displayed, by specifying how far apart the tab stops should
be located.
When Elvis displays a file with tabs,
it displays the tabs as a variable number of spaces.
The value of this option is a list of tabstop widths, in which the last
number is repeated for longer lines.
(E.g., "2,6,8" would create tabstops at columns 3, 9, 17, 25, 33, etc.)
You should probably leave this option at its default value, "8", since
changing this will make your file look strange in any other context.
If you want to use indentation levels of less than 8 characters,
you're better off changing <a href="#shiftwidth">shiftwidth</a> and maybe
setting <a href="#inputtab">inputtab</a><code>=spaces</code> and
<a href="#smarttab">smarttab</a>.
<dt><a name="shiftwidth">shiftwidth, sw <em>(Tab-List, buf)</em></a>
<dd>The <em>shiftwidth</em> option indicates how far
left or right the <a href="elvisvi.html#lt"><</a> and
<a href="elvisvi.html#gt">></a> operator commands
(and the <kbd>^D</kbd> and <kbd>^T</kbd> input mode keystrokes)
should shift the line of text.
This is used for adjusting the indentation of lines.
The value of this option is a list of tabstop widths, in which the last
number is repeated for longer lines.
For example, "2,6,8" would create shifting zones that start at columns
3, 9, 17, 25, 33, etc.
If a line is indented 3 spaces before a <kbd><</kbd> command (that's
1 space into the second shift zone), then it be indented 1 space after it
(1 space into the second shift zone); or after <kbd>></kbd> it would
be indented 9 spaces (1 space into the third shift zone).
The default value is "8".
<dt><a name="textwidth">textwidth, tw <em>(Number, buf)</em></a>
<dd>When editing a text file in "normal" display mode,
the <em>textwidth</em> option can be used to cause word-wrap to occur when a
line gets too long.
The default value of textwidth is 0, which disables automatic word-wrap.
Setting it to any larger value causes word-wrap to occur when text is inserted
into a line, causing that line to become wider than textwidth columns.
(Note that this has nothing to do with the display formatting of the "html"
and "man" display modes.)
<dt><a name="wrapmargin">wrapmargin, wm <em>(Boolean, win)</em></a>
<dd>The <em>wrapmargin</em> option is provided for
backwards compatibility.
It allows you to set the <a href="#textwidth">textwidth</a> relative to the right edge of the window,
instead of the left edge.
This option's value is actually derived from the <code>textwidth</code> option's value
and the window's width (the <a href="#columns">columns</a> option),
so if you resize a window this option's value will appear to change to
correspond to the new width; textwidth will not change.
<dt><a name="digraph">digraph, dig <em>(Boolean, global)</em></a>
<dd><a href="elvisinp.html#DIG">Digraphs</a> allow
you to enter non-ASCII characters via a combination of two ASCII characters.
There are two ways to enter digraphs:
<kbd>^K X Y</kbd> and <kbd>X backspace Y</kbd>.
The second form can cause some confusion if you're not expecting it, so the
<em>digraph</em> option was created as a way to disable that second form.
The first form of digraphs is always available.
This option is false by default, to avoid the confusion.
<dt><a name="cleantext">cleantext, ct <em>(Packed, global)</em></a>
<dd>The <em>cleantext</em> option tells Elvis when it should remove old text.
All old text goes away when you exit <a href="elvisinp.html">input mode</a>,
but Elvis normally tries to keep old text until then, so you can see what
you've backspaced over.
Some people like that, and some don't.
If you prefer to have Elvis erase old text sooner,
then you'll want to change this option.
<p>
The value of <code>cleantext</code> is a comma-delimited list of rule names,
taken from the following table.
For example, "<code>:se cleantext=long,bs,ex</code>" causes backspaced-over characters
to be erased immediately, or at the start of a long change.
The default value is simply "long".
<table>
<tr>
<th>bs</th>
<td>Erase text when <kbd><Backspace></kbd>, <kbd>^H</kbd>, or
<kbd>^U</kbd> is pressed.
</td>
</tr>
<tr>
<th>short</th>
<td>Erase old text at the start of a short change
(the <a href="elvisvi.html#c">c</a> operator, or related commands).
A short change is one in which the old text doesn't contain any
newlines.
</td>
</tr>
<tr>
<th>long</th>
<td>Erase old text at the start of a long change.
A long change is one in which the old text contains at least one
newline.
</td>
</tr>
<tr>
<th>input</th>
<td>Erase old text whenever a new keystroke is inserted into the text.
</tr>
<tr>
<th>ex</th>
<td>Erase text when <kbd><Backspace></kbd>, <kbd>^H</kbd>, or
<kbd>^U</kbd> is pressed while entering a command line or
regular expression.
This is similar to <strong>bs</strong> but for command lines instead
of the main buffer.
</td>
</tr>
</table>
</dl>
<h2><a name="EXOPTS">6.6 Ex options</a></h2>
<pre graphic>.---------------------.---------.--------.-----------------------------.
| OPTION NAMES | TYPE | GROUP | DESCRIPTION |
|---------------------|---------|--------|-----------------------------|
| <a href="#prompt">prompt</a> | Boolean | global | issue ":" prompt in ex mode |
| <a href="#autoprint">autoprint, ap</a> | Boolean | global | print current line in ex |
| <a href="#report">report</a> | Number | global | minimum # lines to report |
| <a href="#optionwidth">optionwidth, ow</a> | Number | global | widths of ":set all" values |
| <a href="#filenamerules">filenamerules, fnr</a> | Packed | global | how to parse file names |
^---------------------^---------^--------^-----------------------------^
</pre>
<dl>
<dt><a name="prompt">prompt <em>(Boolean, global)</em></a>
<dd>The <em>prompt</em> option controls whether a ":" prompt
is issued before reading each command line in EX mode.
It is true by default, and should usually be left that way.
<dt><a name="autoprint">autoprint, ap <em>(Boolean, global)</em></a>
<dd>The <em>autoprint</em> option causes Elvis to
display the current line of the edit buffer in certain circumstances,
while you're in EX mode.
It is true by default.
<dt><a name="report">report <em>(Number, global)</em></a>
<dd>The <em>report</em> option determines the minimum
number of lines that must change in a file, before Elvis will bother to
display a count of the changed lines.
As a special case, if <code>report=0</code> then it won't report any changes,
or failed <a href="elvisex.html#:substitute">:s/old/new/</a> commands.
Its default value is 5, so small changes won't be reported but big ones will.
<dt><a name="optionwidth">optionwidth, ow <em>(Number, global)</em></a>
<dd><em>optionwidth</em> sets a limit on
how wide a single option can be when output by a ":set" or ":set all" command.
Limiting the widths is a good idea, because otherwise a single option that
has a long value could force the output to use fewer columns, forcing
some options scrolling off the top of the screen before you can read them.
The ":set" command likes to leave at least two spaces after each column.
The default value is <code>optionwidth=24</code>,
which guarantees that at least 3 columns can fit on an 80-character terminal, since 80/(24+2)=3.
Note that <code>optionwidth</code> has no effect on options that you explicitly
name in a ":set" command; for example, ":set <a href="#tags">tags</a>?" will
show you the entire tag path regardless of the value of
<code>optionwidth</code>.
<dt><a name="filenamerules">filenamerules, fnr <em>(Packed, global)</em></a>
<dd>The <em>filenamerules</em> option controls the way file names are parsed
and processed.
Its value is a comma-delimited list of keywords, taken from the following
list.
<pre graphic>
.----------.----------------------------------------------.
| KEYWORD | WHAT IT DOES |
|----------|----------------------------------------------|
| dollar | $<var>VARIABLE</var> for environment vars |
| paren | (<var>expression</var>) evaluation |
| space | <space> acts as a file name delimiter |
| special | % for current file, and # for alternate file |
| tilde | ~ at the start of a file name |
| wildcard | wildcard matching |
^----------^----------------------------------------------^</pre>
<p>
The default value includes all of these keywords.
Users of Microsoft Windows may want to remove "space" from the value,
so that spaces can be used in filenames more easily.
You can still give multiple file names by separating them with <Tab>.
</dl>
<h2><a name="WINDOW">6.7 Window statistics</a></h2>
<pre graphic>.---------------------.---------.--------.-----------------------------.
| OPTION NAMES | TYPE | GROUP | DESCRIPTION |
|---------------------|---------|--------|-----------------------------|
| <a href="#windowid">windowid, id</a> | Number | win | ID number of current window |
| <a href="#columns">columns, cols</a> | Number | win | width of window |
| <a href="#lines">lines, rows</a> | Number | win | height of window |
| <a href="#eventcounter">eventcounter, evct</a> | Number | win | when window was last used |
^---------------------^---------^--------^-----------------------------^
</pre>
<dl>
<dt><a name="windowid">windowid, id <em>(Number, win)</em></a>
<dd>The <em>windowid</em> option stores the ID number of
the current window.
These window IDs are listed by the <a href="elvisex.html#buffer">:buffer</a>
command.
Some GUIs may also display the window ID as part of the window's title.
This value is set to a unique value automatically when the window is
created.
You can't change it.
<dt><a name="columns">columns, cols <em>(Number, win)</em></a>
<br><a name="lines">lines, rows <em>(Number, win)</em></a>
<dd>The <em>columns</em> and
<em>lines</em> options indicate the size of the window.
<dt><a name="eventcounter">eventcounter, evct <em>(Number, win)</em></a>
<dd>Internally, Elvis counts the number of events from the GUI.
If it is an input event (mouse click or key press), then the count value
is copied into the <em>eventcounter</em> option of the current window.
The <a href="elvisvi.html#^W^W">^W^W</a> command uses this option to
determine which two windows are the "most recently used", so it can toggle
between them.
</dl>
<h2><a name="VIEW">6.8 Options affecting the appearance of text</a></h2>
<pre graphic>.---------------------.---------.--------.-----------------------------.
| OPTION NAMES | TYPE | GROUP | DESCRIPTION |
|---------------------|---------|--------|-----------------------------|
| <a href="#list">list, li</a> | Boolean | win | show markups, newlines, etc.|
| <a href="#listchars">listchars, lcs</a> | Packed | global | controls the "list" option |
| <a href="#showmarkups">showmarkups, smu</a> | Boolean | global | show markup at cursor |
| <a href="#bufdisplay">bufdisplay, bd</a> | String | buf | default display mode |
| <a href="#initialsyntax">initialsyntax, isyn</a> | Boolean | buf | start in "syntax" mode? |
| <a href="#prefersyntax">prefersyntax, psyn</a> | String | global | when to set initialsyntax |
| <a href="#display">display, mode</a> | String | win | name of current display mode|
| <a href="#number">number, nu</a> | Boolean | win | display line numbers |
| <a href="#ruler">ruler, ru</a> | Boolean | win | display cursor's line/column|
| <a href="#guidewidth">guidewidth, gw</a> | Tab-list| buf | draw vertical guide lines |
| <a href="#hlobject">hlobject, hlo</a> | String | buf | type of object to highlight |
| <a href="#hllayers">hllayers, hll</a> | Number | win | how many layers to highlight|
| <a href="#background">background, bg</a> | One-of | global | assumed background color |
| <a href="#folding">folding, fold</a> | Boolean | win | enable folding |
| <a href="#show">show</a> | String | global | what to show on bottom row |
| <a href="#state">state</a> | String | global | may be shown via <a href="#show">show</a> option|
| <a href="#showmatch">showmatch, sm</a> | Boolean | win | highlight matching parens |
| <a href="#showmode">showmode, smd</a> | Boolean | win | display the command state |
| <a href="#nonascii">nonascii, asc</a> | One-Of | global | how to display non-ascii |
| <a href="#showstack">showstack, sstk</a> | Boolean | win | display some debugging info |
^---------------------^---------^--------^-----------------------------^
</pre>
<dl>
<dt><a name="list">list, li <em>(Boolean, win)</em></a>
<dd>In the "normal" or "syntax" display modes, the <em>list</em>
option causes tabs and newlines to be visible, under the influence of
the <a href="#listchars">listchars</a> option.
In "html", "man", or "tex" mode, it causes all of the markups to be displayed.
<dt><a name="listchars">listchars, lcs <em>(Packed, global)</em></a>
<dd>This option is only effective if <code>feature("listchars")</code>
returns <code>true</code>.
It alters the effect of the <a href="#list">list</a> option, and can also
cause markers to be shown when sidescrolling is active if the
<a href="#wrap">wrap</a> option is off.
The value is a comma-delimited list of "<var>name</var>:<var>value</var>"
pairs, as follows:
<table>
<tr>
<th align=left>NAME</th>
<th align=left>HOW THE VALUE IS USED</th>
<tr>
<td valign=top>eol</td>
<td>Marks the end of the line.
If omitted, then there is no mark at the end of the line.
</td>
</tr>
<tr>
<td valign=top>tab</td>
<td>Alternate form of the tab character.
When used, tabs are expanded to their usual width.
If the tabstop is narrower than the value, then the value is truncated.
If the tabstop is wider, then the last character of the value is
repeated to fill the tabstop.
If omitted then tabs are shown as <code>^I</code>, and do not fill
the tabstop.
</td>
</tr>
<tr valign=top>
<td>trail</td>
<td>Appearance of trailing spaces at the end of the line.
Like <code>tab</code>,
this is truncated or stretched to be as wide as the spaces.
If omitted, then trailing spaces will simply be displayed as spaces.
</td>
</tr>
<tr valign=top>
<td>ff</td>
<td>Alternate form of the FormFeed character.
If omitted, FormFeed will be displayed as <code>^L</code>.
</td>
</tr>
<tr valign=top>
<td>cr</td>
<td>Altername form of the CarriageReturn character.
If omitted, CarriageReturn will be displayed as <code>^M</code>.
</tr>
<tr valign=top>
<td>esc</td>
<td>Alternate form of the Escape character.
If omitted, Escape will be displayed as <code>^[</code>.
</td>
</tr>
<tr valign=top>
<td>bs</td>
<td>Alternate form of the Backspace character.
If omitted, Backspace will be displayed as <code>^H</code>.
</td>
</tr>
<tr valign=top>
<td>del</td>
<td>Alternate form of the Delete character.
If omitted, Delete will be displayed as <code>^?</code>.
</td>
</tr>
<tr valign=top>
<td>nul</td>
<td>Alternate form of the Null character.
If omitted, Null will be displayed as <code>^@</code>.
</td>
</tr>
<tr valign=top>
<td>precedes</td>
<td>When <a href="#wrap">wrap</a> is off and you've scrolled horizontally,
this marker is displayed at the left edge of non-empty lines.
</td>
</tr>
<tr valign=top>
<td>extends</td>
<td>When <a href="#wrap">wrap</a> is off,
this marker is displayed at the right edge of lines that extend past
the edge of the window.
</td>
</tr>
<tr valign=top>
<td>markup</td>
<td>In the <a href="elvisdm.html#html">html</a>,
<a href="elvisdm.html#man">man</a>, and
<a href="elvisdm.html#tex">tex</a> display modes,
the <a href="#list">list</a> option will cause all markups to be
displayed if the <code>listchars</code> contains "markup".
This field has no ":<var>value</var>" component.
</td>
</tr>
</table>
<p>A typical example is "<code>:set lcs=eol:[EOL],tab:[TAB]-</code>",
which makes the newline marker look like "[EOL]", and tabs look like "[TAB]---".
The default value is "eol:$" which makes the <code>list</code> option look
exactly like it does in the traditional vi.
<p>In the <a href="elvisdm.html#normal">normal</a> and
<a href="elvisdm.html#syntax">syntax</a> display modes, the <code>eol</code>
marker is displayed in the "<code>nontext</code>" typeface,
the <code>precedes</code> and <code>extends</code> markers are displayed in the
"<code>extends</code>" typeface, and
all others are displayed in the "<code>specialkey</code>" face.
In the <a href="elvisdm.html#html">html</a>, <a href="elvisdm.html#man">man</a>,
and <a href="elvisdm.html#tex">tex</a> display modes, markups are displayed
in the "<code>markup</code>" face.
You can adjust the appearance of these faces via the
<a href="elvisex.html#color">:color</a> command.
<p><strong>NOTE:</strong> You can scroll sideways by clicking on the
<code>precedes</code> and <code>extends</code> arrows,
but if you click too quickly then Elvis will see that as a double-click, and
try to perform a tag search on the name at the arrow location.
So if you click, click slowly.
<dt><a name="showmarkups">showmarkups, smu <em>(Boolean, global)</em></a>
<dd>In "html" or "man" mode, the <em>showmarkups</em>
option causes the markup at the cursor to be displayed, but leaves other markups
hidden.
It has no effect in other display modes.
This option is off by default, so markups won't suddenly become visible as
you move the cursor around.
<dt><a name="bufdisplay">bufdisplay, bd <em>(String, buf)</em></a>
<dd>Each buffer has a <em>bufdisplay</em> option,
which indicates that buffer's preferred display mode.
You should set bufdisplay to the name of a supported display mode:
<b>normal, syntax, html, man, tex,</b> or <b>hex.</b>
The compiled-in default is <b>normal</b> but the standard
<a href="elvisses.html#elvis.arf">elvis.arf</a> file tries to choose a
more clever default, based on the extension of the buffer's filename.
<p>For <b>syntax</b>, the exact syntax used normally depends on the filename's
extension.
You may also append a syntax name to explicitly select a syntax.
For example, the following will cause the buffer to be displayed using
C++ syntax:
<pre>
:set bufdisplay="syntax c++"</pre>
<dt><a name="initialsyntax">initialsyntax, isyn <em>(Boolean, buf)</em></a>
<dd>Whenever a new window is created, or an existing window switches buffers,
its display mode is set to either "syntax" if <em>initialsyntax</em> is true,
or to the value of the <a href="#bufdisplay">bufdisplay</a> option otherwise.
This option is normally false, so that HTML documents are shown formatted,
but the default <a href="elvisses.html#elvis.arf">elvis.arf</a> file tries to
choose a better value, using the <a href="#prefersyntax">prefersyntax</a>
option for guidance.
<p><strong>NOTE:</strong>
The <a href="elvisex.html#mkexrc">:mkexrc</a> command never stores the value
of this option permanently.
This is intentional; you may want different buffers to have their
<code>initialsyntax</code> option set or cleared, depending on the type of
text in it, but the initialization file created by <code>:mkexrc</code>
only stores one value for each option.
You should set the <a href="#prefersyntax">prefersyntax</a> option instead.
<dt><a name="prefersyntax">prefersyntax, psyn <em>(String, global)</em></a>