-
Notifications
You must be signed in to change notification settings - Fork 6
/
cmds.nr
2720 lines (2709 loc) · 111 KB
/
cmds.nr
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
.\"##########################################################################
.\"# This program is Copyright (C) 1986-2002 by Jonathan Payne. JOVE is #
.\"# provided by Jonathan and Jovehacks without charge and without #
.\"# warranty. You may copy, modify, and/or distribute JOVE, provided that #
.\"# this notice is included in all the source files and documentation. #
.\"##########################################################################
.\"
.\" cmds.nr: descriptions of each JOVE command and variable.
.\"
.\" This nroff/troff text is used for two purposes:
.\" it is the second portion of the JOVE manual (combine with intro.nr), and
.\" it is used to produce cmds.doc, the text used by the describe-command
.\" and describe-variable commands.
.\" Take note of the .IQ and .BQ macros used in this file to put text in
.\" italic or bold, and that their effect when producing cmds.doc is to
.\" enclose the relevant text within quotes. Do not use any other means of
.\" italicising or emboldening in this file.
.
.dc "abort-char" "(variable)"
This variable defines \s-2JOVE\s0'S abort character. When JOVE
reads this character from the keyboard, it stops what it is doing
(unless the character is quoted in some way). Unfortunately, JOVE
won't notice the character until it reads from the keyboard. The
default value is ^G. See also
.IQ interrupt-character .
.dc "add-lisp-special" "Not Bound"
This command is to tell \s-2JOVE\s0 what identifiers require special
indentation in lisp mode. Lisp functions like
.IQ defun
and
.IQ let
are two of
the default functions that get treated specially. This is just a kludge
to define some of your own. It prompts for the function name.
.dc "allow-^S-and-^Q" "(variable)"
This variable, when set, tells \s-2JOVE\s0 that your terminal will not need
to use the characters ^S and ^Q for flow control, in which case \s-2JOVE\s0
will instruct the system's tty driver to pass them through as normal
characters. Otherwise, if the tty driver was already using these characters
for flow control, it will continue to do so. Certain terminals and
communications systems require that this variable be set
.IQ off ;
in other circumstances it is better set
.IQ on .
.dc "allow-bad-characters-in-filenames" "(variable)"
If set, this variable permits the creation of filenames which contain
\*Qbad\*U characters
such as those from the set \(**&%!"`[]{}. These files are harder to deal
with, because the characters mean something to the shell. The default
value is
.IQ off .
.dc "append-region" "Not Bound"
This appends the region to a specified file. If the file does not
already exist it is created.
.dc "apropos" "Not Bound"
This types out each command, variable and macro with the specified
string in its name (\*Q?\*U matches every name).
For each command and macro that contains the
string, the key sequence that can be used to execute the command or macro is
printed; with variables, the current value is printed. So, to find all the
commands that are related to windows, you type
.DS
: apropos window<Return> .
.DE
.dc "auto-case-abbrev" "(variable)"
When this variable is
.IQ on
(the default), word abbreviations are adjusted for
case automatically. If the abbreviation is typed with no uppercase letter,
the expansion is not changed; if it is typed with one or more uppercase letters,
the first character in the expansion is capitalized;
additionally, if the abbreviation is typed with more than one uppercase letter,
each letter in the expansion immediately preceded by whitespace or \-
is capitalized.
For example, if \*Qjove\*U were the abbreviation for
\*Qjonathan's own version of EMACS\*U, the following table shows how the
abbreviation would be expanded.
.DS I
.ta \w'JOVE111'u
jove jonathan's own version of EMACS
Jove Jonathan's own version of EMACS
JOVE Jonathan's Own Version Of EMACS
JoVe Jonathan's Own Version Of EMACS
.DE
When this variable is
.IQ off ,
upper and lower case are
distinguished when looking for the abbreviation, i.e., in the example above,
\*QJOVE\*U and \*QJove\*U would not be expanded unless they were defined separately.
See also the
.IQ word-abbrev-mode
command.
.dc "auto-execute-command" "Not Bound"
This tells \s-2JOVE\s0 to execute a command automatically when a file whose
name matches a specified pattern is read. The first argument is the
command you wish to have executed.
The second argument is the pattern, a regular expression
that is matched against the start of the file name.
If you wish to match a suffix, start the pattern with \*Q.\(**\*U;
to match every file, use that as the whole pattern.
Any numeric argument
will be passed on to the command when it is executed (this is
useful when combined with commands that adjust a minor mode).
For example, if you want
to be in
.IQ show-match-mode
when you edit C source files (that is, files
that end with
.BQ .c
or
.BQ .h )
you can type
.DS
: auto-execute-command show-match-mode .\(**\^\e\^.[ch]$
.DE
Actually, this command toggles the Show Match minor mode,
but since it is initially off, it will have the desired effect. For
more certain control, give the
.IQ auto-execute-command
a non-zero numeric
argument: this will be passed on to the
.IQ show-match-mode .
.dc "auto-execute-macro" "Not Bound"
This is like
.IQ auto-execute-command
except you use it to execute macros
automatically instead of built-in commands.
.dc "auto-fill-mode" "Not Bound"
This turns on or off the Auto Fill minor mode in the selected buffer.
Without a numeric argument, the command toggles the mode; with a
zero argument, the mode is turned off; with a non-zero argument,
the mode is turned on. When \s-2JOVE\s0 is in Auto Fill mode it
automatically breaks lines for you when you reach the right margin
so you don't have to remember to hit Return. \s-2JOVE\s0 uses 78 as
the right margin but you can change that by setting the variable
.IQ right-margin
to another
value.
.dc "auto-indent-mode" "Not Bound"
This turns on or off Auto Indent minor mode in the selected buffer.
Without a numeric argument, the command toggles the mode; with a
zero argument, the mode is turned off; with a non-zero argument,
the mode is turned on. When \s-2JOVE\s0 is in Auto Indent mode,
the
.IQ newline
command (which is normally bound to Return) acts identically to
.IQ newline-and-indent :
the new line is indented to the same position as the line you
were just on. This is useful for lining up C code (or any other
language (but what else is there besides C?)).
Furthermore, if a line is broken because of Auto Fill mode, and
Auto Indent mode is on, the new line will be indented as the old line was.
.dc "backward-character" "^B"
This moves point backward over a single character or line-separator.
Thus if point is at the
beginning of the line it moves to the end of the previous line.
.dc "backward-list" "ESC\ ^P"
This moves point backward over a list, which is any text between properly
matching (\^...\^), [\^...\^] or {\^...\^}.
It first searches backward for a \*Q)\*U and then moves to the matching \*Q(\*U.
This is useful when you are trying to find unmatched parentheses in a program.
Arguments are accepted, and negative arguments search forwards.
See also
.IQ backward-s-expression .
.dc "backward-paragraph" "Usually Not Bound"
This moves point backward to the beginning of the current or previous
paragraph. Paragraphs are bounded by lines that match
.IQ paragraph-delimiter-pattern
(by default, those that are empty or look like troff or TeX commands).
A change in indentation may also signal a break
between paragraphs, except that \s-2JOVE\s0 allows the first line of a
paragraph to be indented differently from the other lines.
Arguments are accepted, and negative arguments search forwards.
.dc "backward-s-expression" "ESC\ ^B"
This moves point backward over an s-expression, that is over a Lisp atom or
a C identifier (depending on the major mode) ignoring punctuation and
whitespace; or, if the nearest preceding significant character is one of
\*Q)]}\*U, over a list as in
.IQ backward-list .
Arguments are accepted, and negative arguments search forwards.
.dc "backward-sentence" "ESC\ A"
This moves point backward to the beginning of the current or previous
sentence. \s-2JOVE\s0 considers the end of a sentence to be the characters
\*Q.\*U, \*Q!\*U or \*Q?\*U followed by a Return or by one or more spaces.
Arguments are accepted, and negative arguments search forwards.
.dc "backward-up-list" "ESC\ ^U"
This is similar to
.IQ backward-list
except it backs up and OUT of the enclosing list. In other
words, it moves backward to whichever of \*Q([{\*U would match one of
\*Q)]}\*U if you were to type it right then.
Arguments are accepted, and negative arguments search forwards as in
.IQ down-list .
.dc "backward-word" "ESC\ B"
This moves point backward to the beginning of the current or previous
word.
Arguments are accepted, and negative arguments search forwards.
.dc "bad-filename-extensions" "(variable)"
This contains a list of words separated by spaces which are to be
considered bad filename extensions, and so will not be included in
filename completion. The default contains, amongst much else,
.BQ .o
so if you have
.BQ jove.c
and
.BQ jove.o
in the same directory, the filename completion will not complain
of an ambiguity because it will ignore
.BQ jove.o .
.dc "begin-kbd-macro" "^X\ ("
This starts defining the keyboard macro by remembering all your key
strokes until you execute
.IQ end-kbd-macro ,
by typing \*Q^X\ )\*U. Because of a bug in \s-2JOVE\s0 you shouldn't
terminate the macro by typing \*QESC\ X end-kbd-macro\*U;
.IQ end-kbd-macro
must be bound to \*Q^X\ )\*U in order to make things work correctly.
The
.IQ execute-kbd-macro
command will execute the remembered key strokes.
Sometimes you may want a macro to accept different input each time it runs.
To see how to do this, see the
.IQ make-macro-interactive
command.
.dc "beginning-of-file" "ESC\ <"
This moves point backward to the beginning of the buffer. This sometimes
prints the \*Q[Point pushed]\*U message to indicate that
\s-2JOVE\s0 has set the mark so you can go back to where you were
if you want.
See also the variable
.IQ mark-threshold .
.dc "beginning-of-line" "^A"
This moves point to the beginning of the current line.
.dc "beginning-of-window" "ESC\ ,"
This moves point to the beginning of the active window. If there
is a numeric argument, point moves that many lines below the top
line. With the default bindings, the sequence \*QESC\ ,\*U is the same as
\*QESC\ <\*U (\c
.IQ beginning-of-file )
but without the shift key on the \*Q<\*U,
and can thus easily be remembered.
.dc "bind-keymap-to-key" "Not Bound"
This is like
.IQ bind-to-key
except that you use it to attach a key sequence to a named keymap.
The only reasonable use is to bind some extra key to
.IQ ESC-map
for keyboards that make typing ESC painful.
.dc "bind-macro-to-key" "Not Bound"
This is like
.IQ bind-to-key
except you use it to attach a key sequence to a named macro.
.dc "bind-macro-to-word-abbrev" "Not Bound"
This command allows you to bind a macro to a previously defined word
abbreviation. Whenever you type the abbreviation, it will first be
expanded as an abbreviation (which could be empty, of course), and then
the macro will be executed.
Note that if the macro moves point around, you should first
.IQ set-mark
and then
.IQ exchange-point-and-mark .
.dc "bind-to-key" "Not Bound"
This attaches a key sequence to an internal \s-2JOVE\s0 command so
that future hits on that key sequence invoke that command. This is
called a global binding, as compared to local bindings and process
bindings. Any previous global binding of this key sequence is
discarded. For example, to make \*Q^W\*U erase the previous word, you
type
.DS
: bind-to-key kill-previous-word ^W .
.DE
It isn't possible to have two globally bound key sequences where one
is a prefix of the other: \s-2JOVE\s0 wouldn't know whether to obey
the shorter sequence or wait for the longer sequence. Normally, when
the
.IQ bind-to-key
command is issued interactively, the key sequence is taken to end
one keystroke after the longest sequence matching any proper prefix
of another binding (thus no new prefix can be created). If the command
is given a numeric argument, the key sequence is taken up to the
next Return keystroke (kludge!); bindings to any prefix of the
sequence are discarded. When the command is issued from a
.IQ source d
file, the
key sequence is taken up to the end of the line (it is also
processed so that control characters can and should be entered using
the ^A notation).
Note that neither process nor local bindings are changed by
this command, although they can be eclipsed. Given a choice between
bindings, the shortest is executed; if there is still a choice,
a process binding is preferred to a local binding, and a local
binding is preferred to a global binding.
.dc "buffer-position" "Not Bound"
This displays the current file name, current line number, total number
of lines, current character number, total number of characters,
percentage of the way through the file, and the position of
the cursor in the current line.
.dc "c-argument-indentation" "(variable)"
This variable describes how to indent lines which are part of nested
expressions in C. The default is \-1, which means to indent a continued
line by lining it up with the first argument of the current expression.
Otherwise, the line will be indented by
.IQ c-argument-indentation
characters
past the indent of the first line of the expression. For example, the
default value produces:
.DS
.nr TY \w'Typeout('
Typeout(fmt, itoa(bcount++), line_cnt(b, nbuf),
\h'\n(TYu'TypeNames[b->b_type],
\h'\n(TYu'IsModified(b) ? "\(**" : b->b_ntbf ? "+" : NullStr,
\h'\n(TYu'buf_width, b->b_name, filename(b));
.DE
.dc "c-indentation-increment" "(variable)"
This defines a set of tabstops independent of the value of
.IQ tab-width .
This value will be used in C
mode, and \s-2JOVE\s0 will insert the correct number of Spaces and Tabs to
get the right behavior. For programmers that like to indent with 4 spaces,
set this value to 4. Some people prefer to set this to 4 and leave
tab-width set to 8. This will create files whose indentation steps in
4-space increments, and which look the same anywhere that tabs are expanded
to 8 spaces (i.e. in most settings). Others prefer to have one tab
character per indentation level, then fiddle the tab expansion width to get
the appearance they like. They should set both
.IQ c-indentation-increment
and
.IQ tab-width
to 4. Whenever using a non-standard tab width
(\c
.IQ tab-width )
you should only use tabs for indentation, and use
spaces for all columnar alignment later in the lines.
.dc "c-mode" "Not Bound"
This turns on the C major mode in the currently selected buffer.
When in C or Lisp mode, Tab, \*Q}\*U, and \*Q)\*U behave a little differently
from usual: They are indented to the \*Qright\*U place for C (or Lisp)
programs. In \s-2JOVE\s0, the \*Qright\*U place is simply the way the author
likes it (but I've got good taste).
.dc "case-character-capitalize" "Not Bound"
This capitalizes the character after point, i.e., the character under
the cursor. If a negative argument is supplied that many characters
before point are upper cased.
.dc "case-ignore-search" "(variable)"
This variable, when
.IQ on ,
tells \s-2JOVE\s0 to treat upper and lower case
the same when searching. Thus \*Qjove\*U would match \*QJOVE\*U, and
\*QJoVe\*U would match either. The default value of this variable is
.IQ off .
.dc "case-region-lower" "Not Bound"
This changes all the upper case letters in the region to their lower
case equivalents.
.dc "case-region-upper" "Not Bound"
This changes all the lower case letters in the region to their upper
case equivalents.
.dc "case-word-capitalize" "ESC\ C"
This capitalizes the current word by making the current letter upper
case and making the rest of the word lower case. Point is moved to
the end of the word. If point is not positioned on a word it is first
moved forward to the beginning of the next word. If a negative
argument is supplied that many words
before point are capitalized.
This is useful for correcting the word just typed without having to
move point to the beginning of the word yourself.
.dc "case-word-lower" "ESC\ L"
This lower-cases the current word and leaves point at the end of it.
If point is in the middle of a word the rest of the word is
converted. If point is not in a word it is first moved forward to the
beginning of the next word. If a negative argument is supplied that
many words before
point are converted to lower case. This is useful
for correcting the word just typed without having to move point to the
beginning of the word yourself.
.dc "case-word-upper" "ESC\ U"
This upper-cases the current word and leaves point at the end of it.
If point is in the middle of a word the rest of the word is
converted. If point is not in a word it is first moved forward to the
beginning of the next word. If a negative argument is supplied that
many words before
point are converted to upper case. This is useful
for correcting the word just typed without having to move point to the
beginning of the word yourself.
.dc "cd" "Not Bound"
This changes the current directory.
.dc "character-to-octal-insert" "Not Bound"
This inserts a Back-slash followed by the ascii value of the next
character typed. For example, \*Q^G\*U inserts the string \*Q\^\e\^007\*U.
.dc "clear-and-redraw" "ESC\ ^L"
This clears the entire screen and redraws all the windows. Use this
when \s-2JOVE\s0 gets confused about what's on the screen, or when the screen
gets filled with garbage characters or output from another program.
.dc "comment-format" "(variable)"
This variable tells \s-2JOVE\s0 how to format your comments when you run the
command
.IQ fill-comment .
Its format is this:
.ID
<open pattern>%!<line header>%c<line trailer>%!<close pattern>
.DE
The %!, %c, and %! must appear in the format; everything else is optional.
A newline (represented by %n) may appear in the open or close patterns. %%
is the representation for %. The default comment format is for C comments.
See
.IQ fill-comment
for more details.
.dc "compile-it" "^X\ ^E"
This compiles your program by running the
.UX
command
.IQ make
into a buffer,
and automatically parsing the error messages that are created (if any). See
the
.IQ parse-errors
command.
If
.IQ compile-it
is given a numeric argument, it will prompt for a command to run in
place of the plain make and the command you enter will become the new
default. See also
.IQ error-format-string
which makes it possible to parse errors of a different format and
see also the variable
.IQ error-window-size .
.dc "continue-process" "Not Bound"
This sends the signal SIGCONT to the interactive process in the current
buffer, IF the process is currently stopped.
.dc "copy-region" "ESC\ W"
This takes all the text in the region and copies it onto the kill ring
buffer. This is just like running
.IQ kill-region
followed by the
.IQ yank
command. See the
.IQ kill-region
and
.IQ yank
commands.
.dc "current-error" "Not Bound"
This moves to the current error in the list of parsed errors. See the
.IQ next-error
and
.IQ previous-error
commands for more detailed
information.
.dc "date" "Not Bound"
This prints the date on the message line.
.dc "dbx-format-string" "(variable)"
This is the default regular-expression search string used by \s-2JOVE\s0 to
parse output from
.IQ dbx
running in a shell process (see the
.IQ dbx-mode
command). You shouldn't have to change
this unless you are using something other than
.IQ DBX .
.dc "dbx-mode" "Not Bound"
This turns on or off the DBX minor mode in the selected
buffer. Without a numeric argument, the command toggles the mode;
with a zero argument, the mode is turned off; with a non-zero
argument, the mode is turned on.
This mode only makes sense in a buffer running an interactive shell
process. If you are running
.IQ dbx
in a window and and the buffer is in DBX minor mode, \s-2JOVE\s0 will
automatically track the source location in another window.
Whenever you type \*Qwhere\*U or while you're stepping through a
program, or when you reach a breakpoint, \s-2JOVE\s0 will present the
source file in another window and move to the line that is being referenced.
See also the variable
.IQ dbx-format-string .
.dc "define-global-word-abbrev" "Not Bound"
This defines a global abbreviation.
See the
.IQ word-abbrev-mode
command.
.dc "define-macro" "Not Bound"
This provides a different mechanism for defining keyboard macros.
Instead of gathering keystrokes and storing them into the
\*Qkeyboard-macro\*U (which is how
.IQ begin-kbd-macro
works),
.IQ define-macro
prompts for a macro name (terminated with Space, or Newline) and then for
the actual macro body. If you wish to specify control characters in the
macro, you may simply insert them (using the
.IQ quoted-insert
command) or by inserting the character '^' followed by the appropriate
letter for that character (e.g., ^A would be the two characters '^'
followed by 'A'). You may use Back-slash to prevent the '^' from being
interpreted as part of a control character when you really wish to insert
one (e.g., a macro body \*Q\^\e\^^foo\*U would insert the string \*Q^foo\*U into the
buffer, whereas the body \*Q^foo\*U would be the same as typing ^F and then
inserting the string \*Qoo\*U). See
.IQ write-macros-to-file
to see how to save macros.
.dc "define-mode-word-abbrev" "Not Bound"
This defines a mode-specific abbreviation.
See the
.IQ word-abbrev-mode
command.
.dc "delete-blank-lines" "^X\ ^O"
This deletes all the blank lines around point. This is useful when you
previously opened many lines with the
.IQ newline-and-backup
command and now wish to delete the unused ones.
.dc "delete-buffer" "^X\ K"
This deletes a buffer and frees up all the memory associated with it. Be
careful(!) - once a buffer has been deleted it is gone forever. \s-2JOVE\s0
will ask you to confirm if you try to delete a buffer that needs saving.
This command is useful for when \s-2JOVE\s0 runs out of space to store
new buffers.
See also the
.IQ erase-buffer
command and the
.IQ kill-some-buffers
command.
.dc "delete-current-window" "^X\ D)"
This deletes the active window and moves point into one of the
remaining ones. It is an error to try to delete the only remaining
window.
.dc "delete-next-character" "^D"
This deletes the character that's just after point (that is, the
character under the cursor). If point is at the end of a line, the
line-separator is deleted and the next line is joined with the current
one.
If an argument is given, that many characters are deleted and placed on the
kill ring. If the argument is negative the deletion is forwards.
.dc "delete-other-windows" "^X\ 1"
This deletes all the other windows except the current one. This can be
thought of as going back into One Window mode.
.dc "delete-previous-character" "DEL and ^H"
This deletes the character that's just before point (that is, the
character before the cursor). If point is at the beginning of the
line, the line separator is deleted and that line is joined with the
previous one.
If an argument is given, that many characters are deleted and placed on the
kill ring. If the argument is negative the deletion is backwards.
.dc "delete-white-space" "ESC\ \e\^"
This deletes all the Tabs and Spaces around point.
.dc "describe-bindings" "Not Bound"
This types out a list containing each bound key and the command that gets
invoked every time that key is typed. To make a wall chart of \s-2JOVE\s0
commands, set
.IQ send-typeout-to-buffer
to
.IQ on
and \s-2JOVE\s0 will
store the key bindings in a buffer which you can save to a file and then
print.
.dc "describe-command" "ESC\ ?"
This waits for you to type a command and then prints an explanation of that
command, together with its current bindings.
.dc "describe-key" "^X\ ?"
This waits for you to type a key and then tells the name of the
command that gets invoked every time that key is hit. Once you have
the name of the command you can use the
.IQ describe-command
command
to find out exactly what it does.
.dc "describe-variable" "Not Bound"
This prints an explanation of a specified variable.
.dc "digit" "ESC\ 0 through ESC\ 9"
Starts or continues the entry of a numeric argument with the digit typed.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
.dc "digit-0" "Not Bound"
Starts or continues the entry of a numeric argument with the digit 0.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the 0 key on the numeric keypad.
.dc "digit-1" "Not Bound"
Starts or continues the entry of a numeric argument with the digit 1.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the 1 key on the numeric keypad.
.dc "digit-2" "Not Bound"
Starts or continues the entry of a numeric argument with the digit 2.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the 2 key on the numeric keypad.
.dc "digit-3" "Not Bound"
Starts or continues the entry of a numeric argument with the digit 3.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the 3 key on the numeric keypad.
.dc "digit-4" "Not Bound"
Starts or continues the entry of a numeric argument with the digit 4.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the 4 key on the numeric keypad.
.dc "digit-5" "Not Bound"
Starts or continues the entry of a numeric argument with the digit 5.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the 5 key on the numeric keypad.
.dc "digit-6" "Not Bound"
Starts or continues the entry of a numeric argument with the digit 6.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the 6 key on the numeric keypad.
.dc "digit-7" "Not Bound"
Starts or continues the entry of a numeric argument with the digit 7.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the 7 key on the numeric keypad.
.dc "digit-8" "Not Bound"
Starts or continues the entry of a numeric argument with the digit 8.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the 8 key on the numeric keypad.
.dc "digit-9" "Not Bound"
Starts or continues the entry of a numeric argument with the digit 9.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the 9 key on the numeric keypad.
.dc "digit-minus" "ESC\ \-"
Starts the entry of a numeric argument with a minus sign.
It continues reading digits until you type some other command.
Then that command is executed with the numeric argument you specified.
Sometimes it is handy to bind this to the \- key on a numeric keypad.
In the absence of further digits and unless otherwise stated (e.g.
.IQ next-page "),"
the argument \-1 is assumed.
.dc "dirs" "Not Bound"
This prints out the directory stack. See the
.IQ cd ,
.IQ pushd ,
.IQ pushlibd
and
.IQ popd
commands for more information.
.dc "disable-biff" "(variable)"
When this is set, \s-2JOVE\s0 disables biff when you're editing and enables it
again when you get out of \s-2JOVE\s0, or when you pause to the parent shell
or push to a new shell. (This means arrival of new mail will not be
immediately apparent but will not cause indiscriminate writing on the
display). The default is
.IQ off ,
although it is always safe to set it
.IQ on ,
even on systems that do not provide the biff facility. Note that
the variable
.IQ mode-line
can be set up to announce the arrival of new
mail during a \s-2JOVE\s0 session.
.dc "display-default-filenames" "(variable)"
If this is set when \s-2JOVE\s0 asks for a filename, it will display the default
(unless that would take too much of the prompt line).
.dc "display-filenames-with-bad-extensions" "(variable)"
This variable affects only filename completion, in particular, what
happens when \*Q?\*U is typed while prompting for a file. When this variable
is
.IQ on ,
any files that end with one of the extensions defined by the
variable
.IQ bad-filename-extensions
will be displayed with an \*Q!\*U in front of their names. When
.IQ display-filenames-with-bad-extensions
is
.IQ off
the files will not be displayed at all. The default value
is
.IQ on .
.dc "down-list" "ESC\ ^D"
This is the opposite of
.IQ backward-up-list .
It enters the next list. In other
words, it moves forward to whichever of \*Q([{\*U it first encounters.
Arguments are accepted, and negative arguments search backwards as in
.IQ backward-up-list .
.dc "dstop-process" "Proc: ^C\ ^Y"
Send the signal SIGTSTP to the interactive process in the selected buffer when
next it tries to read input. This is equivalent to sending the \*Qdsusp\*U
character (which most people have set to ^Y) to the process.
This only works if you are in a buffer bound to an interactive process.
.dc "edit-word-abbrevs" "Not Bound"
This creates (if necessary) a buffer with a list of each abbreviation and
the phrase
it expands into, and enters a recursive edit to let you change the
abbreviations or add some more. The format of this list is
\*Qabbreviation:phrase\*U so if you add some more you should follow that
format. It's probably simplest just to copy some already existing
abbreviations and edit them. Use the
.IQ exit-jove
command to exit the recursive edit.
.dc "end-kbd-macro" "^X\ )"
This stops the definition of the keyboard macro. Because of a bug in
\s-2JOVE\s0, this must be bound to \*Q^X\ )\*U, or some key sequence which is
one or two characters long. Anything else will not work properly.
See
.IQ begin-kbd-macro
for more details.
.dc "end-of-file" "ESC\ >"
This moves point forward to the end of the buffer. This sometimes
prints the \*Q[Point pushed]\*U message to indicate that
\s-2JOVE\s0 has set the mark so you can go back to where you were
if you want.
See also the variable
.IQ mark-threshold .
.dc "end-of-line" "^E"
This moves point to the end of the current line. If the line is too
long to fit on the screen, it will be scrolled horizontally.
This is described with the variables
.IQ scroll-width
and
.IQ scroll-all-lines .
.dc "end-of-window" "ESC\ ."
This moves point to the last character in the active window. If there is a
numeric argument, the point moves that many lines above the bottom
line. With the default bindings, the sequence \*QESC\ .\*U is the same as
\*QESC\ >\*U (\c
.IQ end-of-file )
but without the shift key on the \*Q>\*U,
and can thus easily be remembered.
.dc "enhanced-keyboard" "(variable)"
(IBM PC version only) This is a boolean variable which can be set to
enable the enhanced AT-style keyboard. The enhanced keyboard contains
function keys and key combinations that are not supported on the
original IBM PCs and XTs. The default value is determined by a bit in
the BIOS data area, but this method apparently does not work with a
few BIOS implementations. WARNING: setting enhanced-keyboard
.IQ on
on systems without an enhanced keyboard will lock up your
system and require you to reboot.
.dc "eof-process" "^C\ ^D"
Sends EOF to the current interactive process. This only works on
versions of \s-2JOVE\s0 running under versions of
.UX
with pty's.
.dc "erase-buffer" "Not Bound"
This erases the contents of the specified buffer. This is like
.IQ delete-buffer
except it only erases the contents of the buffer, not
the buffer itself. If you try to erase a buffer that needs saving you
will be asked to confirm it.
.dc "error-format-string" "(variable)"
This is the error format string that is used by
.IQ parse-errors
to find the error messages in a buffer. The way it works is by using
this string as a \s-2JOVE\s0 regular expression search string, where the
\e\^(\^...\^\e) regular expression feature is used to pick out the
file name and line number from the line containing an error message. For
instance, a typical error message might look like this:
.sp 1
"file.c", line 540: missing semi-colon
.sp 1
For strings of this format, an appropriate value for
.IQ error-format-string
would be something like this:
.sp 1
^"\^\e\^([^"]\(**\^\e)", line \e\^([0-9]\(**\^\e):
.sp 1
What this means is, to find an error message, search for a line beginning
with a double-quote. Then it says that all the following characters up
to another double-quote should be remembered as one unit, namely the
filename that the error is in (that is why the first set of parentheses is
surrounding it). Then it says that after the filename there will be the
string \*Q, line \*U followed by a line number, which should be remembered as
a single unit (which is why the second set of parentheses is around that).
The only constraint on the error messages is that the file name and line
number appear on the same line. Most compilers seem to do this anyway, so
this is not an unreasonable restriction.
.sp 1
If you do not know how to use regular expressions then this variable will
be hard for you to use. Also note that you can look at the default
value of this variable by printing it out, but it is a really complicated
string because it is trying to accommodate the outputs of more than one
compiler.
.dc "error-window-size" "(variable)"
This is the percentage of the screen to use for the error-window on the
screen. When you execute
.IQ compile-it
or
.IQ spell-buffer ,
.IQ error-window-size
percent of the screen will go to the error window. If the window already
exists and is a different size, it is made to be this size. The default
value is 20%.
.dc "exchange-point-and-mark" "^X\ ^X"
This moves point to mark and makes mark the old point. This is for
quickly moving from one end of the region to the other.
.dc "execute-kbd-macro" "^X\ E"
This executes the keyboard macro. If you supply a numeric argument the
macro is executed that many times.
See the
.IQ begin-kbd-macro
command for more details.
.dc "execute-macro" "Not Bound"
This executes a specified macro. If you supply a numeric argument the
macro is executed that many times.
.dc "execute-named-command" "ESC\ X"
This is the way to execute a command that isn't bound to any key. When you
are prompted with \*Q:\ \*U you can type the name of the command. You don't
have to type the entire name. After typing a few characters, Tab will fill
in as many more as it can (as will Space, but that will also obey the
command if it is now unambiguous). If you are not sure of the name of the
command, type \*Q?\*U and \s-2JOVE\s0 will print a list of all the commands
that you could possibly match given what you've already typed. Once the
command is unambiguous, typing Return will cause it to be obeyed.
If you don't have any idea what the command's name
is but you know it has something to do with windows (for example), you
can do \*QESC\ X apropos window\*U and \s-2JOVE\s0 will print a list of all
the commands that are related to windows. If you find yourself
constantly executing the same commands this way you probably want to bind
them to keys so that you can execute them more quickly. See the
.IQ bind-to-key
command.
.dc "exit-jove" "^X\ ^C"
This exits \s-2JOVE\s0. If any buffers need saving \s-2JOVE\s0 will print a warning
message and ask for confirmation. If you leave without saving your
buffers all your work will be lost. If you made a mistake and really
do want to exit then you can.
If there are any interactive processes running, \s-2JOVE\s0 will also ask
whether they should be terminated.
If you are in a recursive editing level
.IQ exit-jove
will return you from that. The selected buffer will be set back to
the buffer that was current when the recursive edit was entered.
Normally, point will be returned to its position at the time of
entry, but if the
.IQ exit-jove
command is given a numeric argument,
point is left at its most recent position within that buffer.
.dc "expand-environment-variables" "(variable)"
When this variable is
.IQ on
\s-2JOVE\s0 will try to expand any strings of the form
\*Q$var\*U into the value of the environment variable \*Qvar\*U when asking for
a filename. For example, if you type
.BQ $HOME/.joverc ,
\*Q$HOME\*U will be
replaced with your home directory. The default value is
.IQ on .
.dc "file-creation-mode" "(variable)"
This variable has an octal value. It contains the mode (see
.IQ chmod (1))
with which files should be created. This mode gets
modified by your current umask setting (see
.IQ umask (1)).
The default value is usually
0666 or 0644.
.dc "files-should-end-with-newline" "(variable)"
This variable indicates that all files should always have a newline
at the end. This is often necessary for line printers and the like.
When set, if \s-2JOVE\s0 is writing a file whose last character is not a
newline, it will add one automatically.
The default value is
.IQ on .
.dc "fill-comment" "Not Bound"
This command fills in your C comments to make them pretty and readable.
This filling is done according the variable
.IQ comment-format .
.DS
/\(**
\(** the default format makes comments like this.
\(**/
.DE
This can be changed by changing the
.IQ comment-format
variable. Other languages
may be supported by changing the format variable appropriately. The
formatter looks backwards from point for an open comment symbol. If
found, all indentation is done relative to the position of the first character
of the open symbol. If there is a matching close symbol, the entire
comment is formatted. If not, the region between the open symbol and point
is reformatted. The original text is saved in the kill ring; a
.IQ yank-pop
command will undo the formatting.
.dc "fill-paragraph" "ESC\ J"
This rearranges words between lines so that all the lines in the current
paragraph extend as close to the right margin as possible, ensuring that
none of the lines will be greater than the right margin. The default value
for
.IQ right-margin
is 78, but can be changed with the
.IQ set
and
.IQ right-margin-here
commands.
The rearrangement may cause an end of line to be replaced by whitespace.
Normally, this whitespace is a single space character.
If the variable
.IQ space-sentence-2
is
.IQ on ,
and the end of the line was apparently the end of a sentence
or the line ended with a colon, two spaces will be used.
However, a sentence or colon followed by a single space already within
a line will not be altered.
\s-2JOVE\s0 has a complicated algorithm
for determining the beginning and end of the paragraph. In the normal case
\s-2JOVE\s0 will give all the lines the same indent as they currently have,
but if you wish to force a new indent you can supply a numeric argument to
.IQ fill-paragraph
and \s-2JOVE\s0 will indent each line to the column
specified by the
.IQ left-margin
variable. See also the
.IQ left-margin
variable and
.IQ left-margin-here
command.
Filling a paragraph can do something that you didn't intend. For that
reason the original text is saved on the kill ring and can be yanked
back. Deleting the rubble is up to you.
.dc "fill-region" "Not Bound"
This is like
.IQ fill-paragraph ,
except it operates on a region instead of
just a paragraph.
.dc "filter-region" "Not Bound"
This sends the text in the region to a
.UX
command, and replaces the
region with the output from that command. For example, if you are
lazy and don't like to take the time to write properly indented C
code, you can put the region around your C file and
.IQ filter-region
it through
.IQ cb ,
the
.UX
C beautifier. If you have a file that contains
a bunch of lines that need to be sorted you can do that from inside
\s-2JOVE\s0 too, by filtering the region through the
.UX
.IQ sort
command.
Before output from the command replaces the region \s-2JOVE\s0 stores the old
text in the kill ring. If you are unhappy with the results a
.IQ yank-pop
command will get back the old text.
.dc "find-file" "^X\ ^F"
This reads a specified file into its own buffer and then selects that buffer.
If you've already read this file into a buffer, that buffer is simply
selected. If the file doesn't yet exist, \s-2JOVE\s0 will print \*Q(New file)\*U
so that you know.
If possible, the buffer is named after the filename (ignoring any directory
part).
.dc "find-tag" "^X\ T"
This finds the file that contains the specified tag. \s-2JOVE\s0 looks up
tags by default in the
.BQ tags
file in the current directory, as created
by the
.UX
command
.IQ ctags(1) .
You can change
the default tag name by setting the
.IQ tag-file
variable to another
name. If you specify a numeric argument to this command, you will be
prompted for a tag file. This is a good way to specify another tag file
without changing the default.
.dc "find-tag-at-point" "Not Bound"
This finds the file that contains the tag that point is currently in.
See
.IQ find-tag .
.dc "first-non-blank" "ESC\ M"
This moves point (backwards or forwards) to the indent of the current line.
.dc "forward-character" "^F"
This moves point forward over a single character or line-separator.
Thus if point is at the end of
the line it moves to the beginning of the next one.
.dc "forward-list" "ESC\ ^N"
This moves point forward over a list, which is any text between properly
matching (\^...\^), [\^...\^] or {\^...\^}.
It first searches forward for a \*Q(\*U and then moves to the matching \*Q)\*U.
This is useful when you are trying to find unmatched parentheses in a program.
Arguments are accepted, and negative arguments search backwards.
See also
.IQ forward-s-expression .
.dc "forward-paragraph" "ESC\ ]"
This moves point forward to the end of the current or next paragraph.
Paragraphs are bounded by lines that match
.IQ paragraph-delimiter-pattern
(by default, those that are empty or look like troff or TeX commands).
A change in indentation may also signal a break
between paragraphs, except that \s-2JOVE\s0 allows the first line of a
paragraph to be indented differently from the other lines.
Arguments are accepted, and negative arguments search backwards.
.dc "forward-s-expression" "ESC\ ^F"
This moves point forward over an s-expression, that is over a Lisp atom or
a C identifier (depending on the major mode) ignoring punctuation and
whitespace; or, if the nearest succeeding significant character is one of
\*Q([{\*U, over a list as in
.IQ forward-list .
Arguments are accepted, and negative arguments search backwards.
.dc "forward-sentence" "ESC\ E"
This moves point forward to the end of the current or next sentence.
\s-2JOVE\s0 considers the end of a sentence to be the characters \*Q.\*U, \*Q!\*U or