File: ne_2.html

package info (click to toggle)
ne 1.38-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 3,164 kB
  • ctags: 2,701
  • sloc: ansic: 16,620; perl: 380; makefile: 137; sh: 10
file content (828 lines) | stat: -rw-r--r-- 48,750 bytes parent folder | download
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
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on September, 27  2004 by texi2html 1.64 -->
<!-- 
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
            Karl Berry  <karl@freefriends.org>
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
            and many others.
Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
 
-->
<HEAD>
<TITLE><CODE>ne</CODE>'s manual: Basics</TITLE>

<META NAME="description" CONTENT="<CODE>ne</CODE>'s manual: Basics">
<META NAME="keywords" CONTENT="<CODE>ne</CODE>'s manual: Basics">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="texi2html 1.64">

</HEAD>

<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">

<A NAME="SEC2"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_1.html#SEC1"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC3"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 2. Basics </H1>
<!--docid::SEC2::-->
<P>

<I>Simple things should be simple, and complex things should be
possible.</I> (Alan Kay)
</P><P>

<CODE>ne</CODE>'s user interface is essentially a compromise between the limits of
character driven terminals and the power of GUIs. While <EM>real</EM> editing is
done without ever touching a mouse, it is also true that editing should be
doable without ever touching a manual. These two conflicting goals can be
accomodated easily in a single program if we can offer a series of interfaces
that allow for differentiated use.
</P><P>

In other words, it is unlikely that an <CODE>ne</CODE> wizard will ever have to
activate a menu, but to become an expert user you just have to use
the menus enough to learn by heart the most important keystrokes. A good
manual is always invaluable when one comes to configuration and esoteric
features, but few users will ever need to change <CODE>ne</CODE>'s menus or
key bindings.
</P><P>

Another important thing is that powerful features should always be
accessible, at least in part, to every user. The average user should be
able to record his actions, replay them, and save them in a humanly
readable format for further use and editing.
</P><P>

In the following sections we shall take a quick tour of <CODE>ne</CODE>'s features.
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="ne_2.html#SEC3">2.1 Terminology</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="ne_2.html#SEC4">2.2 Starting</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="ne_2.html#SEC5">2.3 Loading and Saving</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="ne_2.html#SEC6">2.4 Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="ne_2.html#SEC7">2.5 Basic Preferences</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="ne_2.html#SEC8">2.6 Basic Macros</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="ne_2.html#SEC9">2.7 More Advanced Features</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
</TABLE></BLOCKQUOTE>
<P>

<A NAME="Terminology"></A>
<HR SIZE="6">
<A NAME="SEC3"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC4"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.1 Terminology </H2>
<!--docid::SEC3::-->
<P>

In this section we explain and contrast some of the terms
<CODE>ne</CODE> uses. Understanding these distinctions will go a long way
towards making the rest of this manual make sense.
</P><P>

A <EM>file</EM> is a group of bytes stored on disk. This may seem rather
obvious, but the important distinction here is that <CODE>ne</CODE> does not
edit files; it edits <EM>documents</EM>.
</P><P>

A <EM>document</EM> is what <CODE>ne</CODE> calls one of the "text thingies"
that you can edit. It is a sequence of lines of text in the computer's
memory--not on disk. Documents can be created, edited, saved in
files, loaded from files, discarded, <I>et cetera</I>. When a
document is loaded from or saved to a file, it remains
associated with that file by name until the document is
either closed or saved to a different file. Interactions between
documents and files are handled by the commands under the
<CODE>File</CODE> menu. The <CODE>Documents</CODE> menu commands only deal with
documents. See section <A HREF="ne_3.html#SEC23">3.6 Menus</A>.
</P><P>

Internally, <CODE>ne</CODE> holds its documents in <EM>buffers</EM>.  A
<EM>buffer</EM> is a chunk of memory in which <CODE>ne</CODE> holds something.
For example, each document is held in its own buffer, as are any loaded
or recorded macros, undo records, a copy of your last deleted line of
text, a copy of all your previous responses to long input, and several
other things.
</P><P>

<A NAME="Starting"></A>
<HR SIZE="6">
<A NAME="SEC4"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC3"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC5"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC5"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.2 Starting </H2>
<!--docid::SEC4::-->
<P>

To start <CODE>ne</CODE>, just type <SAMP>`ne'</SAMP> and press <KBD>Return</KBD>. If you
want to edit some specific file(s), you can put their name(s) on the command
line just after the command name, as for any UN*X command. The
screen of your terminal will be cleared (or filled with text loaded
from the first file you specified).
</P><P>

At the bottom of the screen, you will see a line containing some numbers and
letters. This is called the <EM>status bar</EM> because it reports to you part of
the internal state of the editor.
</P><P>

Writing text is pretty straightforward: if your terminal is properly
configured, every key will (should) do what you expect. Alphabetic
characters insert text, cursor keys move the cursor, and so on. You can
use the <KBD>Delete</KBD> and <KBD>Backspace</KBD> key to perform corrections. If
your keyboard has an <KBD>Insert</KBD> key, you can use it to <EM>toggle</EM>
(switch from on to off, or vice versa) insert mode. In general,
<CODE>ne</CODE> tries to squeeze everything it can from your
keyboard. Functions keys and special movement keys should work
flawlessly if your terminal is properly configured. If not, complain to
your system administrator.
</P><P>

At startup, the status bar has the following form:
</P><P>

<TABLE><tr><td>&nbsp;</td><td class=example><pre> L:       1 C:       1  12% ia----pvu-------@A &#60;unnamed&#62;
</pre></td></tr></table></P><P>

(the numbers could be different, and a file name could be shown as
last item instead of <SAMP>`&#60;unnamed&#62;'</SAMP>). You probably already guessed
that the numbers after <SAMP>`L:'</SAMP> and <SAMP>`C:'</SAMP> are the line and column
numbers, respectively, whereas the percentage indicates approximately
your position in the file. The small letters represent user flags that
you can turn on and off. In particular, <SAMP>`i'</SAMP> tells you that insert
mode is on, while <SAMP>`p'</SAMP> tells that the automatic preferences system
is activated. For a thorough explanation of the meaning of the flags on
the status line, see <A HREF="ne_3.html#SEC19">3.2 The Status Bar</A>.
</P><P>

Once you are accustomed to cursor movement and line editing, it is time to
press <KBD>f1</KBD> (the first function key), or in case your keyboard does not
have such a key, <KBD>Escape</KBD>. Immediately, the <EM>menu bar</EM> will appear,
and the first menu will be drawn (if you find yourself waiting for the menu
to appear, you can press <KBD>Escape</KBD> twice in a row). You can now move
around menus and menu items by pressing the cursor keys. Moreover, a lower
case alphabetic key will move to the first item whose name starts with that
letter, and an upper case alphabetic key will move to the first menu whose
name starts with that letter.
</P><P>

Moving around the menus should give you an idea of the capabilities of
<CODE>ne</CODE>. If you want to save your work, you should use the <SAMP>`Save As...'</SAMP>
item from the <SAMP>`File'</SAMP> menu. Menus are fully discussed in <A HREF="ne_3.html#SEC23">3.6 Menus</A>.
When you want to exit from the menu system, press <KBD>f1</KBD> (or <KBD>Escape</KBD>)
again. If you instead prefer to choose a command and execute it, move
to the respective menu item and press <KBD>Return</KBD>.
</P><P>

At the end of several menu items you will find strange symbols like
<KBD>^A</KBD> or <KBD>f1</KBD>. They represent <EM>shortcuts</EM> for the respective
menu items. In other words, instead of activating, selecting and
executing a menu item, which can take seconds, you can simply press a
couple of keys. The symbol <SAMP>`^'</SAMP> in front of a character denotes the
shortcut produced by the <KBD>Control</KBD> key plus that character (we
assume here that you are perfectly aware of the usage of the
<KBD>Control</KBD> key: it is just as if you had to type a capital letter
with <KBD>Shift</KBD>). The descriptions of the form <KBD>f</KBD><VAR>n</VAR> represent
instead function keys. Finally, the symbol <SAMP>`['</SAMP> in front of a
character denotes the shortcut produced by <KBD>Control</KBD> plus <KBD>Meta</KBD>
(a.k.a. <KBD>Alt</KBD>) plus that character, <EM>or</EM> <KBD>Meta</KBD> plus that
character, depending on your terminal emulator--you must check by
yourself. Moreover, these last bindings could not work with some
terminals, in which case you can replace them with a sequence: just
press the <KBD>Escape</KBD> key followed by the letter. A few menu items are
bound to two control sequences (just in case one does not work, or it is
impractical).
</P><P>

Note that under certain conditions (for instance, while using
<CODE>ne</CODE> through a <CODE>telnet</CODE> connection) some of the shortcuts
might not work because they are trapped by the operating system for
other purposes (see section <A HREF="ne_6.html#SEC176">6. Hints and Tricks</A>).
</P><P>

Finally, we have the third and last interface to <CODE>ne</CODE>'s features: the
<EM>command line</EM>. If you press <KBD><KBD>Control</KBD>-K</KBD>, or <KBD>Escape</KBD> followed by
<SAMP>`:'</SAMP> (a la <CODE>vi</CODE>), you will be requested to enter a command
to execute. Just press <KBD>Return</KBD> for the time being (or, if you are
really interested in this topic, see section <A HREF="ne_3.html#SEC21">3.4 The Command Line</A>).
</P><P>

In the sections that follow, when explaining how to use a command we
shall usually describe the corresponding menu item. The related shortcut
and command can be found on the menu item itself, and in <A HREF="ne_3.html#SEC23">3.6 Menus</A>.
</P><P>

<A NAME="Loading and Saving"></A>
<HR SIZE="6">
<A NAME="SEC5"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC4"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC6"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC6"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.3 Loading and Saving </H2>
<!--docid::SEC5::-->
<P>

The first thing to learn about an editor is how to exit. <CODE>ne</CODE> has a
<CODE>CloseDoc</CODE> command that can be activated by pressing <KBD><KBD>Control</KBD>-Q</KBD>,
by choosing the <SAMP>`Close'</SAMP> item of the <SAMP>`Document'</SAMP> menu, or by activating
the command line with <KBD><KBD>Control</KBD>-K</KBD>, writing <SAMP>`cd'</SAMP> and pressing
<KBD>Return</KBD>. Its effect is to close the current document without saving any
modifications.  (You will be requested to confirm your choice in case the
current document has been modified since the last save.)
</P><P>

There is also a <CODE>Quit</CODE> command, which closes all the documents
without saving any modifications, and an <CODE>Save&#38;Exit</CODE> (<KBD><KBD>Meta</KBD>-X</KBD>) command, which saves
the modified documents before quitting.
</P><P>

This choice of shortcuts could surprise you. Wouldn't <CODE>Quit</CODE> be a
much better candidate for <KBD><KBD>Control</KBD>-Q</KBD>? Well, experience shows that
the most common operation is closing a document rather than quitting the
editor. If there is just one document, the two operations coincide (this is
typical, for instance, when you use <CODE>ne</CODE> for writing electronic mail), and
if there are many documents, it is far more common to close a single document
than all the existing documents.
</P><P>

If you want to load a file, you may use the <CODE>Open</CODE> command, which can
be activated by pressing <KBD><KBD>Control</KBD>-O</KBD>, by choosing the <SAMP>`Open...'</SAMP>
item of the <SAMP>`File'</SAMP> menu, or by typing it on the command line (as in the
previous case). You will be prompted with a list of files and directories in
the current working directory. (You can tell the directory names because they
end with a slash.) You can select any of the file names by using the
cursor keys, or any other movement key. Pressing an alphabetic key will
move the cursor to the first entry after the cursor that starts with the
given letter. When the cursor is positioned over the file you want to
open, press <KBD>Return</KBD>, and the file will be opened. If instead
you move to a directory name, pressing <KBD>Return</KBD> will display the
contents of that directory.
</P><P>

You can also escape with <KBD>f1</KBD>, <KBD>Escape</KBD> or
<KBD>Escape</KBD>-<KBD>Escape</KBD>  and manually type the file name on the command
line (or escape again, and abort the <CODE>Open</CODE> operation). If you escape
with <KBD>Tab</KBD> instead, the file or directory under the cursor will be
copied in the input line, where you can modify it manually. <CODE>ne</CODE> has
also file name completion features activated by <KBD>Tab</KBD> (see section <A HREF="ne_3.html#SEC20">3.3 The Input Line</A>).
</P><P>

When you want to save a file, just use the command <CODE>Save</CODE>
(<KBD><KBD>Control</KBD>-S</KBD>). It will use the current document name or will
ask you for one if the current document has no name. <CODE>SaveAs</CODE>, on the
other hand, will always ask for a new name before saving the file.
</P><P>

If <CODE>ne</CODE> is interrupted by an external signal (for instance, if your
terminal crashes), it will try to save your work in some emergency files.
These files will have names similar to your current files, but they will
have a pound sign <CODE>#</CODE> prepended to their names.
See section <A HREF="ne_3.html#SEC36">3.9 Emergency Save</A>.
</P><P>

<A NAME="Editing"></A>
<HR SIZE="6">
<A NAME="SEC6"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC5"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC7"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC7"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.4 Editing </H2>
<!--docid::SEC6::-->
<P>

An editor is presumably used for editing text. If you decide not to edit text, you
probably don't want to use <CODE>ne</CODE>, because that's all it does--it edits text.
It does not play <CODE>Tetris</CODE>. It does not evaluate recursive
functions. It does not solve your love problems. It just allows you to
edit text.
</P><P>

The design of <CODE>ne</CODE> makes editing extremely natural and straightforward.
There is nothing special you have to do to start editing once you've
started <CODE>ne</CODE>. Just start typing, and the text you type shows up in
your document.
</P><P>

<CODE>ne</CODE> provides two ways of deleting characters, the <KBD>Backspace</KBD>
(or <KBD><KBD>Control</KBD>-H</KBD>, if you have no such key) and the <KBD>Delete</KBD>
key. In the former case you delete the character to the left of the
cursor, while in the latter case you delete the character just under the
cursor. This is in contrast with many UN*X editors, which for
unknown reasons decide to limit your ways of destroying
things--something notoriously much funnier than creating. (See
<A HREF="ne_4.html#SEC157">4.11.3 DeleteChar</A> and <A HREF="ne_4.html#SEC158">4.11.4 Backspace</A>.)
</P><P>

If you want to delete a line, you can use the <CODE>DeleteLine</CODE> command, or
<KBD><KBD>Control</KBD>-Y</KBD>. A very nice feature of <CODE>ne</CODE> is that each time a
nonempty line is deleted, it is stored in a temporary buffer from which it can
be undeleted via the <CODE>UndelLine</CODE> command or <KBD><KBD>Control</KBD>-U</KBD>. (See
<A HREF="ne_4.html#SEC160">4.11.6 DeleteLine</A> and <A HREF="ne_4.html#SEC86">4.7.3 UndelLine</A>.)
</P><P>

If you want to copy, cut, paste or erase a block of text, you have to
set a mark. This is done via the <CODE>Mark</CODE> command, activated by
choosing the <SAMP>`Mark Block'</SAMP> item of the <SAMP>`Edit'</SAMP> menu, or by
pressing <KBD><KBD>Control</KBD>-B</KBD> (think "block"). This command
<EM>toggles</EM> the mark (puts it in the current cursor position or
removes it from wherever it is).  Whenever the mark is set, the zone
between the mark and the cursor can be cut, copied or erased. Note that
by using <KBD><KBD>Control</KBD>-@</KBD> you can set a <EM>vertical</EM> mark
instead, which allows you to mark rectangles of text. Whenever a mark
has been set, either an <SAMP>`M'</SAMP> appears on the command line or a
<SAMP>`V'</SAMP> appears if the mark is vertical. If you forget where the mark
is currently, you can use the <SAMP>`Goto Mark'</SAMP> menu item of the
<SAMP>`Search'</SAMP> menu to move the cursor to it.
</P><P>

When you cut or copy a block, you can save it with the <SAMP>`Save Clip...'</SAMP> menu
item of the <SAMP>`Edit'</SAMP> menu. You can also load a file into a clip with
<SAMP>`Open Clip...'</SAMP>, and paste it anywhere. All such operations act on the
<EM>current clip</EM>, which is by default the clip 0. You can change the current
clip number with the <CODE>ClipNumber</CODE> command. See section <A HREF="ne_4.html#SEC64">4.4.10 ClipNumber</A>.
</P><P>

One of the most noteworthy features of <CODE>ne</CODE> is its <EM>unlimited
undo/redo</EM> capability. Each editing action is recorded, and can be played
back and forth as much as you like. Undo and redo are bound to the function
keys <KBD>f5</KBD> and <KBD>f6</KBD>.
</P><P>

Another interesting feature of <CODE>ne</CODE> is it's ability to load an
unlimited number of documents. If you activate the <CODE>NewDoc</CODE> command
(using the <SAMP>`Document'</SAMP> menu or the command line), a new, empty
document will be created. You can switch between the existing documents
in memory with <KBD>f2</KBD> and <KBD>f3</KBD>, which are bound to the
<CODE>PrevDoc</CODE> and <CODE>NextDoc</CODE> commands. If you have a lot of
documents, the <SAMP>`Select...'</SAMP> menu item (<KBD>f4</KBD>) prompts you with
the list of names of currently loaded documents and allows you to
choose directly what to edit.
</P><P>

<A NAME="Basic Preferences"></A>
<HR SIZE="6">
<A NAME="SEC7"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC6"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC8"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC8"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.5 Basic Preferences </H2>
<!--docid::SEC7::-->
<P>

<CODE>ne</CODE> has a number of <EM>flags</EM> that specify alternative
behaviours, the most prototypical example being the <EM>insert</EM> flag,
which specifies whether the text you type is inserted into the existing text
or overwrites it. You can toggle this flag with the <SAMP>`Insert'</SAMP> menu
item of the <SAMP>`Prefs'</SAMP> menu, or with the <KBD>Insert</KBD> key of your
keyboard. (<EM>Toggle</EM> means to change the value of a flag from true to
false, or from false to true; see section <A HREF="ne_4.html#SEC101">4.9.4 Insert</A>.)
</P><P>

Another important flag is the <EM>free form</EM> flag, which specifies
whether the cursor can be moved beyond the right end of each line of
text or only to existing text (a la <CODE>vi</CODE>). Programmers usually
prefer non free form editing; text writers seem to prefer free form. See
<A HREF="ne_4.html#SEC103">4.9.6 FreeForm</A> for some elaboration. The free form flag can be set with
the <SAMP>`Free Form'</SAMP> menu item of the <SAMP>`Prefs'</SAMP> menu.
</P><P>

At this point, we suggest you explore by trial and error the other
flags of the <CODE>Prefs</CODE> menu, or try the <CODE>Flags</CODE> command (see section <A HREF="ne_4.html#SEC98">4.9.1 Flags</A>),
which explains all the flags and the commands that operate on
them. We prefer spending a few words discussing <EM>automatic
preferences</EM> or <EM>autoprefs</EM>.
</P><P>

Having many flags ensures a high degree of flexibility, but it can turn
editing into a nightmare if you have to turn on and off dozens of flags
for each different kind of file you edit. <CODE>ne</CODE>'s solution is to
automatically set a document's flags when a file is loaded based on your
stated preferences for each <EM>file type</EM>. A file's type is determined
by the <EM>extension</EM> of its file name, that is, the last group of letters
after the last dot. For instance, the extension of <TT>`ne.texinfo'</TT> is
<SAMP>`texinfo'</SAMP>, the extension of <TT>`source.c'</TT> is <SAMP>`c'</SAMP>, and the
extension of <TT>`my.txt'</TT> is <SAMP>`txt'</SAMP>.
</P><P>

Whenever you select the <SAMP>`Save AutoPrefs'</SAMP> menu item, <CODE>ne</CODE> saves
the flags of your current document to be used when
you load other files with the same extension as your current document.
These <EM>autoprefs</EM> are saved in a file in your <TT>`~/.ne'</TT>
directory. This file has the same name as the extension of the current
document with <SAMP>`#ap'</SAMP> appended to it. It contains all the commands
necessary to recreate your current document's flag settings. Whenever
you open a file with this file name extension, <CODE>ne</CODE> will
automagically recreate your prefered flag settings for that file type.
(There is a flag that inhibits the process; see section <A HREF="ne_4.html#SEC99">4.9.2 AutoPrefs</A>.)
</P><P>

Finally, when you select the <SAMP>`Save Def Prefs'</SAMP> menu item, a special
preferences file named <TT>`.default#ap'</TT> is saved. These preferences
are loaded whenever <CODE>ne</CODE> is run before loading any file. This is
how you set up the preferences you always want to be set.
</P><P>

Note also that a preferences file is just a macro (as described in the
following section). Thus, it can be edited manually if necessary.
</P><P>

<A NAME="Basic Macros"></A>
<HR SIZE="6">
<A NAME="SEC8"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC7"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC9"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC9"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.6 Basic Macros </H2>
<!--docid::SEC8::-->
<P>

Very often, the programmer or the text writer has to repeat some complex
editing action over a series of similar blocks of text. This is where
<EM>macros</EM> come in.
</P><P>

A <EM>macro</EM> is a stored sequence of commands. Any sequence of commands
you find yourself repeating is an excellent candidate for being made
into a macro. You could create a macro by editing a document that only
contains valid <CODE>ne</CODE> commands and saving it, but by far the easiest way to create
a macro is to have <CODE>ne</CODE> record your actions. <CODE>ne</CODE> allows you
to record macros and then play them (execute the commands they contain)
many times. You can save them on disk for future use, edit them, or bind
them to any key. You could even reconfigure each key of your keyboard to
play a complex macro if you wanted to.
</P><P>

<CODE>ne</CODE> can have any number of named macros loaded at the same time.
It can also have one unnamed macro in its <EM>current macro</EM> buffer.
The named macros are typically loaded from disk files, while the
current macro buffer is where your recorded macro is held before you
save it or record over it.
</P><P>

Recording a macro is very simple. The keystroke <KBD><KBD>Control</KBD>-T</KBD>
starts and stops recording a macro.  When you start recording a macro,
<CODE>ne</CODE> clears the <EM>current macro</EM> buffer and starts recording all
your actions (with a few exceptions). You can see that you are recording
a macro if an <SAMP>`R'</SAMP> appears on the status bar. When you stop the
recording process (again using <KBD><KBD>Control</KBD>-T</KBD>), you can play the
macro with the <SAMP>`Play Once'</SAMP> item of the <SAMP>`Macros'</SAMP> menu or with
the <KBD>f9</KBD> key. If you want to repeat the action many times, the
<CODE>Play</CODE> command allows you to specify a number of times to repeat
the macro. You can always interrupt the macro's execution with
<KBD><KBD>Control</KBD>-\</KBD>.
</P><P>

A recorded macro has no name. It's just an anonymous sequence of
commands in the <EM>current macro</EM> buffer, and it will go away when you
exit <CODE>ne</CODE> or record another macro. If you want to save your
recorded macro for future use, you can give it a name and save it with
the <SAMP>`Save Macro...'</SAMP> menu item or the <CODE>SaveMacro</CODE> command. The
macro is saved as a file in your current directory by default or
whatever directory you specify when prompted for the macro's name. If
you save it in your <TT>`~/.ne'</TT> directory then it will be easy to
access it later from any other directory. The <SAMP>`Open Macro...'</SAMP> menu item
and the <CODE>OpenMacro</CODE> command load a macro from a file into the
current macro buffer just as if you just <CODE>Record</CODE>ed it.
</P><P>

Any macro can be loaded from a file and played with the <SAMP>`Play Macro...'</SAMP>
menu item or the <CODE>Macro</CODE> command. (This won't modify any recorded
anonymous macro that may be in the <EM>current macro</EM> buffer;
<CODE>OpenMacro</CODE> does that.) Useful macros can be permanently bound to a
keystroke as explained in <A HREF="ne_5.html#SEC174">5.1 Key Bindings</A>. Moreover, whenever a
command line does not specify one of <CODE>ne</CODE>'s builtin commands, it is
assumed to specify the name of a macro to execute. Thus, you can execute
macros just by typing their file names. Include a path if the macro
file's directory is different from your current directory or your
<TT>`~/.ne'</TT> directory.
</P><P>

If the first attempt to open a macro fails, <CODE>ne</CODE> checks for a macro
with the given name in your <TT>`~/.ne'</TT> directory. This allows you
to program simple extensions to <CODE>ne</CODE>'s language. For instance, all
automatic preferences macros--which are just specially named macros
that contain only commands to set preferences flags--can be executed
just by typing their names. For example, if you have an automatic
preference for the <SAMP>`doc'</SAMP> extension for example, you can set
<CODE>ne</CODE>'s flags exactly as if you loaded a file ending with
<SAMP>`.doc'</SAMP> by typing the command <CODE>doc#ap</CODE>.
</P><P>

In general, it is a good idea to save frequently used macros in
<TT>`~/.ne'</TT> so that you can invoke them by name without specifying
a path regardless of your current directory. On the other hand, if you
have a macro that is customized for one document or a set of documents
that you store in one directory, then you might want to save the
macro in that directory as well. If you do, then you would want to
<CODE>cd</CODE> to that directory before you start <CODE>ne</CODE> so that you can
access that macro without specifying a path.
</P><P>

If your macro has the same name as one of <CODE>ne</CODE>'s builtin commands,
you can only access it with the <CODE>Macro <VAR>name</VAR></CODE> command.
Builtin command names are always found first before <CODE>ne</CODE> command
interpreter looks for macros.
</P><P>

The system administrator may make some macros available from a global
directory (<CODE>/usr/lib/ne</CODE> by default). You can change where
<CODE>ne</CODE> looks for this global directory by setting and exporting the
environment variable <CODE>NE_GLOBAL_DIR</CODE> before running <CODE>ne</CODE>.
</P><P>

Since loading a macro each time it is invoked would be a rather slow and
expensive process, once a macro has been executed it is cached internally.
Subsequent invocations of the macro will used the cached version.
</P><P>

<STRONG>Warning:</STRONG> the macro names are <EM>not</EM> case
sensitive or path sensitive. <CODE>ne</CODE> only caches the file name of a
macro, not the path name, and uses a case insensitive comparison. That
is, if you invoke <SAMP>`~/foobar/macro'</SAMP>, a subsequent call for
<SAMP>`/usr/MACRO'</SAMP> will use the cached version of <SAMP>`~/foobar/macro'</SAMP>.
You can clear the cache by using the <CODE>UnloadMacros</CODE> command.
See section <A HREF="ne_4.html#SEC82">4.6.6 UnloadMacros</A>.
</P><P>

The behaviour of macros may vary with different preferences. If the user
changes the AutoIndent and WordWrap flags, for example, new lines and new
text may not appear in the same way they would have when a macro was
recorded. Good general purpose macros avoid such problems by using the
<CODE>PushPrefs</CODE> command first. This preserves the user's preferences.
Then they set any preferences that could affect their behaviour. Once
that is taken care of they get on with the actual work for which they
were intended. Finally, they use the <CODE>PopPrefs</CODE> command to restore
the user's preferences. Note that if a macro is stopped before it
restores the preferences (either by the user pressing
<KBD><KBD>Control</KBD>-\</KBD> or by a command failing) then that responsibility
falls on the user.
</P><P>

<A NAME="More Advanced Features"></A>
<HR SIZE="6">
<A NAME="SEC9"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC8"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC10"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.7 More Advanced Features </H2>
<!--docid::SEC9::-->
<P>

<HR SIZE="6">
<A NAME="SEC10"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC9"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC11"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC9"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.7.1 UTF-8 support </H3>
<!--docid::SEC10::-->
UTF-8 is a character encoding that can represent the whole ISO 10646
character set--two billion characters! <CODE>ne</CODE> can load and
manipulate UTF-8 files transparently, in particular on systems that
provide UTF-8 I/O. See section <A HREF="ne_3.html#SEC37">3.10 UTF-8 Support</A>.
<P>

<HR SIZE="6">
<A NAME="SEC11"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC10"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC12"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC12"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC9"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.7.2 Bookmarks </H3>
<!--docid::SEC11::-->
It often happens that you have to browse through a file, switching frequently
between a small number of positions. In this case, you can use
<EM>bookmarks</EM>. There are up to ten bookmarks per document, each designated
by a single digit, with the default being <SAMP>`0'</SAMP>. You can set them with the
<CODE>SetBookmark</CODE> command, and you can return to any set bookmark with the
<CODE>GotoBookmark</CODE> command. Also, <CODE>ne</CODE> sets an automatic bookmark
(designated by <SAMP>`-'</SAMP>) to your current position in a document whenever you
use the <CODE>GotoBookmark</CODE> command. You can use this automatic bookmark to
return to that previous location with a <CODE>GotoBookmark -</CODE> command. Doing
so will reset the automatic bookmark, so that subsequent <CODE>GotoBookmark -</CODE>
commands will switch between those two locations. See section <A HREF="ne_4.html#SEC151">4.10.26 SetBookmark</A>,
<A HREF="ne_4.html#SEC152">4.10.27 GotoBookmark</A>, and <A HREF="ne_4.html#SEC153">4.10.28 UnsetBookmark</A>. Note that in the default
configuration no key binding is assigned to these commands. If you use them
frequently, you may want to change the key bindings. See section <A HREF="ne_5.html#SEC174">5.1 Key Bindings</A>.
<P>

<HR SIZE="6">
<A NAME="SEC12"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC11"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC13"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC13"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC9"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.7.3 MS-DOS files </H3>
<!--docid::SEC12::-->
<CODE>ne</CODE> will detect automagically the presence of MS-DOS line terminators
(CR/LFs) and set the CR/LF flag. When the file will be saved, the
terminators will be restored correctly. You can change this behaviour
using the <CODE>PreserveCR</CODE> and <CODE>CRLF</CODE> commands. See section <A HREF="ne_4.html#SEC112">4.9.15 PreserveCR</A>,
and <A HREF="ne_4.html#SEC113">4.9.16 CRLF</A>.
<P>

<HR SIZE="6">
<A NAME="SEC13"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC12"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC14"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC14"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC9"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.7.4 Binary files </H3>
<!--docid::SEC13::-->
<CODE>ne</CODE> allows a simplified form of <EM>binary editing</EM>. If the
binary flag is set, only NULLs are considered newlines when loading or
saving. Thus, binary files can be safely loaded, modified and saved.
Inserting a new line or joining two lines has the effect of inserting or
deleting a NULL. Be careful not to mismatch the state of the binary flag
when loading and saving the same file.
<P>

<HR SIZE="6">
<A NAME="SEC14"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC13"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC15"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC15"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC9"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.7.5 File requester </H3>
<!--docid::SEC14::-->
The <CODE>NoFileReq</CODE> command deactivates the file requester. It is
intended for "tough guys" who always remember the names of their files and can
type them at the speed of light (maybe with the help of the completer,
which is activated by the <KBD>Tab</KBD> key; see section <A HREF="ne_3.html#SEC20">3.3 The Input Line</A>).
<P>

<HR SIZE="6">
<A NAME="SEC15"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC14"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC16"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC16"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC9"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.7.6 Executing UN*X commands </H3>
<!--docid::SEC15::-->
There are three ways to execute UN*X commands from within <CODE>ne</CODE>.
The <CODE>System</CODE> command can run any UN*X command; you
will get back into <CODE>ne</CODE> as soon as the command execution terminates.
See section <A HREF="ne_4.html#SEC171">4.12.9 System</A>. The <CODE>Through</CODE> (<KBD><KBD>Meta</KBD>-T</KBD>) command (which can be found in the
<SAMP>`Edit'</SAMP> menu), however, is much more powerful; it cuts the current
block, passes it as standard input to any UN*X command, and pastes the
command's output at the current cursor position. This provides a neat
way to pass a part of your document through one of UN*X's many
<EM>filter commands</EM> (commands that read from standard input and write
to standard output, e.g., <CODE>sort</CODE>). See section <A HREF="ne_4.html#SEC65">4.4.11 Through</A>. Finally, you can use the
<CODE>Suspend</CODE> (<KBD><KBD>Control</KBD>-Z</KBD>) command to temporarily stop <CODE>ne</CODE> and
return to your command shell. See section <A HREF="ne_4.html#SEC170">4.12.8 Suspend</A>.
<P>

<HR SIZE="6">
<A NAME="SEC16"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC15"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC9"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.7.7 Advanced key bindings </H3>
<!--docid::SEC16::-->
<P>

For an exaustive list of the remaining features of <CODE>ne</CODE>, see
<A HREF="ne_3.html#SEC17">3. Reference</A>.
</P><P>

<A NAME="Reference"></A>
<HR SIZE="6">
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_2.html#SEC2"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_3.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_13.html#SEC183">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="ne_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<BR>  
<FONT SIZE="-1">
This document was generated
by <I>Sebastiano Vigna</I> on <I>September, 27  2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>

</BODY>
</HTML>