405 lines
11 KiB
HTML
405 lines
11 KiB
HTML
<!--startcut ==============================================-->
|
|
<!-- *** BEGIN HTML header *** -->
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<HTML><HEAD>
|
|
<title>From Pico to Nano LG #50</title>
|
|
</HEAD>
|
|
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
|
|
ALINK="#FF0000">
|
|
<!-- *** END HTML header *** -->
|
|
|
|
<!-- *** BEGIN navbar *** -->
|
|
<A HREF="index.html"><IMG ALT="[ Table of Contents ]"
|
|
SRC="../gx/indexnew.gif" WIDTH=163 HEIGHT=60 ALIGN=bottom ></A>
|
|
<A HREF="../index.html"><IMG ALT="[ Front Page ]"
|
|
SRC="../gx/homenew.gif" WIDTH=163 HEIGHT=60 ALIGN=bottom></A>
|
|
<A HREF="ferrari.html"><IMG ALT="[ Prev ]" SRC="../gx/back2.gif" WIDTH=41 HEIGHT=60 ALIGN=bottom></A>
|
|
<A HREF="../faq/index.html"><IMG ALT="[ Linux Gazette FAQ ]"
|
|
SRC="./../gx/dennis/faq.gif"WIDTH=163 HEIGHT=60 ALIGN=bottom></A>
|
|
<A HREF="lamb.html"><IMG ALT="[ Next ]" SRC="../gx/fwd.gif" WIDTH=41 HEIGHT=60 ALIGN=bottom ></A>
|
|
<!-- *** END navbar *** -->
|
|
|
|
<!--endcut ============================================================-->
|
|
|
|
<H4>
|
|
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
|
</H4>
|
|
|
|
<P> <HR> <P>
|
|
<!--===================================================================-->
|
|
|
|
<center>
|
|
<H1><font color="maroon">From Pico to Nano</font></H1>
|
|
or
|
|
<h3>The Slightly Bigger Editor</h3>
|
|
<H4>By <a href="mailto:guckes-nano@math.fu-berlin.de">Sven Guckes</a></H4>
|
|
</center>
|
|
<P> <HR> <P>
|
|
|
|
<!-- END header -->
|
|
|
|
|
|
|
|
|
|
<p>
|
|
The program "Pine" has become a popular program for both Email and News.
|
|
It makes use of a small and simple editor named "pico".
|
|
<p>
|
|
|
|
Pico's command set only has a dozen commands and it shows the most useful
|
|
commands in the last two lines of the display:
|
|
<p>
|
|
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<pre> </pre>
|
|
<td bgcolor="#e0e0e0">
|
|
<FONT COLOR="#000000">
|
|
<pre>
|
|
UW PICO(tm) 3.5 New Buffer
|
|
|
|
[...]
|
|
|
|
<b>^G</b> Get Help <b>^O</b> WriteOut <b>^R</b> Read File <b>^Y</b> Prev Pg <b>^K</b> Cut Text <b>^C</b> Cur Pos
|
|
<b>^X</b> Exit <b>^J</b> Justify <b>^W</b> Where is <b>^V</b> Next Pg <b>^U</b> UnCut Text<b>^T</b> To Spell
|
|
</pre>
|
|
</FONT>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p>
|
|
|
|
However, the source code for Pico is closely linked to the source code of Pine;
|
|
therefore you cannot download Pico on its own - you have to donwload
|
|
the source of the complete newsreader to install the little editor.
|
|
Worse: Although Pine is freely available you should know this:
|
|
<p>
|
|
|
|
<center>
|
|
Pine and Pico are <b>not</b> "OpenSource"
|
|
</center>
|
|
<p>
|
|
|
|
<hr>
|
|
<h1> Pico is dead - long live Nano </h1>
|
|
|
|
Yes, you cannot just download the source for Pico and install on its own.
|
|
However, many users would like to use this kind of editor
|
|
and simply copy it everywhere for personal use.
|
|
<p>
|
|
|
|
That's why there is now an OpenSource project for a "Pico clone" -
|
|
"<b>Nano</b>".
|
|
(Think of it as "'<b>n ano</b>ther editor", if you like.)
|
|
<p>
|
|
|
|
The goal of Nano is to make a small editor like Pico available under
|
|
the GNU General Public Licence and to add some important commands,
|
|
while keeping the design, ie "small and beautiful".
|
|
<p>
|
|
|
|
<hr>
|
|
<h1>The Editor's New Clothes</h1>
|
|
|
|
Here is a screenshot of nano:
|
|
<p>
|
|
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<pre> </pre>
|
|
<td bgcolor="#e0e0e0">
|
|
<FONT COLOR="#000000">
|
|
<pre>
|
|
<pre>
|
|
nano 0.8.1 New Buffer
|
|
|
|
.
|
|
|
|
^O Write Out ^_ Goto Line ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos
|
|
^X Exit ^\ Replace ^W Where Is ^V Next Page ^U Uncut Txt ^T To Spell
|
|
</pre>
|
|
</FONT>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p>
|
|
|
|
The difference to <tt>pico</tt> is subtle -
|
|
no more copyright by the University of Washington ["UW ... (tm)"]. :-)
|
|
<p>
|
|
|
|
Also, the <tt>WriteOut</tt> command now is above the <tt>Exit</tt> command,
|
|
so you can see both "exit commands" in one column.
|
|
<p>
|
|
|
|
The new commands are in the second column -
|
|
<tt>GotoLine</tt> and <tt>Replace</tt>.
|
|
<p>
|
|
|
|
The <tt>Help</tt> command is still available with <tt>Control-G</tt> -
|
|
but when you invoke it then you will see this message:
|
|
<p>
|
|
|
|
<pre>
|
|
[ Help function not yet implemented, nyah! ]
|
|
</pre>
|
|
|
|
But as with all program which develop fast -
|
|
the documentation is usually missing.
|
|
<p>
|
|
|
|
But do not despair - there's help on the command line:
|
|
<p>
|
|
|
|
<xmp>
|
|
$ nano -h
|
|
Usage: nano [GNU long option] [option] +LINE <file>
|
|
|
|
Option Long option Meaning
|
|
-V --version Print version information and exit
|
|
-c --const Constantly show cursor position
|
|
-h --help Show this message
|
|
-i --autoindent Automatically indent new lines
|
|
-s [prog] --speller=[prog] Enable alternate speller
|
|
-t --tempfile Auto save on exit, don't prompt
|
|
-v --view View (read only) mode
|
|
-w --nowrap Don't wrap long lines
|
|
-x --nohelp Don't show help window
|
|
-z --suspend Enable suspend
|
|
+LINE Start at line number LINE
|
|
</xmp>
|
|
|
|
All these switches are pretty nice, of course. Try them!
|
|
Maybe we will see these lines in some Unix programs from now on:
|
|
|
|
<pre>
|
|
set editor="nano -citxz"
|
|
</pre>
|
|
|
|
<hr>
|
|
<h1> What's your version? </h1>
|
|
|
|
One of the things I like about program is that they
|
|
identify themself by their version (and relase date):
|
|
<p>
|
|
|
|
<pre>
|
|
$ nano -V
|
|
nano version 0.8.0 by Chris Allegretta
|
|
</pre>
|
|
|
|
Soon this will hopefully show both important addresses -
|
|
that of the website and the email address:
|
|
<p>
|
|
|
|
<pre>
|
|
$ nano -V
|
|
nano 0.8.0 http://go.to/nano-editor nano-editor@go.to by Chris Allegretta
|
|
</pre>
|
|
|
|
<hr>
|
|
<h1> Smaller, Faster, Better </h1>
|
|
|
|
You may now that "nano" and "pico" are used in the
|
|
decimal system for fractions like "centi" and "milli";
|
|
"nano" stands for "a billionth" (ie 10^(-9)), and
|
|
"pico" stands for "one trillionth" (ie 10^(-12)).
|
|
<p>
|
|
|
|
So, although "nano" is bigger than "pico"
|
|
I hope that nano will both be smaller in source
|
|
as well as in binary size.
|
|
<p>
|
|
|
|
<hr>
|
|
<h1> A quick look at history </h1>
|
|
|
|
As of Jan 31th, 2000, the current version is nano-0.8.1
|
|
and the tape GNU-zipped archive has about 72 kilobytes.
|
|
<p>
|
|
|
|
<pre>
|
|
date size name-version
|
|
==== ==== ============
|
|
000110 56k nano-0.7.4
|
|
000113 56k nano-0.7.5
|
|
000116 58k nano-0.7.7
|
|
000119 60k nano-0.7.8
|
|
000123 67k nano-0.7.8
|
|
000124 68k nano-0.7.9
|
|
000125 70k nano-0.8.0
|
|
000129 72k nano-0.8.1
|
|
</pre>
|
|
|
|
On average each version adds 2K - so when nano-1.0.0
|
|
gets released it should be around 110k. ;-)
|
|
<p>
|
|
|
|
<hr>
|
|
<h1> Installation </h1>
|
|
|
|
The author distributes RPMs for Nano now.
|
|
However, there is no ftp site which carries Nano yet.
|
|
So if you would like to install your own nano binary
|
|
then you could use a browser to download Nano -
|
|
or simply the nice tool "wget":
|
|
<p>
|
|
|
|
<pre>
|
|
wget http://faculty.plattsburgh.edu/astyanax/nano/dist/nano-0.8.1.tar.gz
|
|
</pre>
|
|
|
|
Unpack with GNU tar:
|
|
<pre>
|
|
gtar xvvzf nano-0.8.1.tar.gz
|
|
</pre>
|
|
|
|
.. and run the configure script and make the binary:
|
|
<pre>
|
|
cd nano-0.8.1
|
|
./configure
|
|
make
|
|
</pre>
|
|
|
|
The installation is pretty fast. :-)
|
|
<p>
|
|
|
|
Now strip the binary:
|
|
<p>
|
|
|
|
<pre>
|
|
guckes@linux> ls -l nano
|
|
-rwx--x--x 1 guckes users 120357 Jan 31 21:31 nano
|
|
guckes@linux> strip nano
|
|
guckes@linux> ls -l nano
|
|
-rwx--x--x 1 guckes users 38232 Jan 31 21:34 nano
|
|
</pre>
|
|
|
|
Only 38K!
|
|
<p>
|
|
|
|
<pre>
|
|
guckes@linux> ls -l =pico
|
|
-rwxr-xr-x 1 root root 159576 Aug 13 02:23 /usr/bin/pico
|
|
</pre>
|
|
|
|
Yes, Pico is bigger!
|
|
<p>
|
|
|
|
And if someone asks you why people delight in nanotechnology -
|
|
now you know. Enjoy Nano!
|
|
<p>
|
|
|
|
<hr>
|
|
<h1> Discussing Nano </h1>
|
|
|
|
As far as I know there is no mailing list for the development of Nano yet.
|
|
Therefore please use the newsgroup
|
|
<a href="news:comp.editors">comp.editors</a>
|
|
to discuss <tt>Nano</tt>.
|
|
<p>
|
|
|
|
However, I am pretty sure that the news about Nano
|
|
will hit the newsgroup comp.mail.pine pretty soon.
|
|
I expect many users of Pine to switch to using Nano instead of Pico.
|
|
Expect crossposts - so please direct followups from comp.mail.pine:
|
|
<pre>
|
|
Followup-To: comp.editors
|
|
</pre>
|
|
<p>
|
|
|
|
Thankyou.
|
|
<p>
|
|
|
|
<hr>
|
|
<h1> The Big Future </h1>
|
|
|
|
The author, Chris Allegretta, is currently working towards
|
|
"<b>Internationalization</b>" (I18N) of nano you should be able to edit
|
|
and see text of other languages which require the space
|
|
of two characters to make up one symbol in language.
|
|
<p>
|
|
|
|
Also, an interface to "<b>spell checking</b>" is in the works.
|
|
This needs lots of testing , of course.
|
|
So all you nerds with strange language -
|
|
please help checking and testing this code!
|
|
<p>
|
|
|
|
Personally, I hope that these commands will be added:
|
|
<p>
|
|
|
|
<ul>
|
|
<li> Visualization of the edit buffer's end.
|
|
<li> Visualization of trailing whitespace (noone ever sees it which is bad!).
|
|
<li> Visualization of _underlined_ and *ephasized* text. (very simple)
|
|
<li> Commands to jump to line before/after current paragraph.
|
|
<li> Command to "pipe" the current text to another (external) command.
|
|
<li> Substitution ("Subst", aka "search and replace") with these options:
|
|
substitution starts at line 1 or optionally on current line;
|
|
skip current match; perform substitution on all further matches.
|
|
</ul>
|
|
|
|
<hr>
|
|
<a name="links"></a>
|
|
<h1>Links and addresses</h1>
|
|
|
|
<pre>
|
|
Chris Allegretta allegrcr@plattsburgh.edu
|
|
Nano editor maintainer
|
|
|
|
<a href="http://go.to/nano-editor"
|
|
>http://go.to/nano-editor</a> or (currently)
|
|
<a href="http://faculty.plattsburgh.edu/astyanax/nano/"
|
|
>http://faculty.plattsburgh.edu/astyanax/nano/</a>
|
|
Nano editor HomePage (run by Chris Allegretta)
|
|
|
|
<a href="http://faculty.plattsburgh.edu/astyanax/nano/dist/"
|
|
>http://faculty.plattsburgh.edu/astyanax/nano/dist/</a>
|
|
Nano editor distribution location (only HTTP - no FTP or FTP mirrors yet)
|
|
|
|
<a href="http://faculty.plattsburgh.edu/astyanax/nano/dist/RPMS/"
|
|
>http://faculty.plattsburgh.edu/astyanax/nano/dist/RPMS/</a>
|
|
Nano editor RPMs
|
|
|
|
<a href="http://www.math.fu-berlin.de/~guckes/pico/"
|
|
>http://www.math.fu-berlin.de/~guckes/pico/</a>
|
|
Pico editor page (run by Sven Guckes)
|
|
|
|
Sven Guckes guckes-nano@math.fu-berlin.de
|
|
Author of this article and evangelist for text based programs
|
|
such as elm, irc, lynx, mutt, nn, screen, slrn, vim, zsh.
|
|
Email since 1989, Usenet since 1992. Webmaster of slrn.org, vim.org.
|
|
<a href="http://www.math.fu-berlin.de/~guckes/"
|
|
>http://www.math.fu-berlin.de/~guckes/</a>
|
|
</PRE>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- *** BEGIN copyright *** -->
|
|
<P> <hr> <P>
|
|
<H5 ALIGN=center>
|
|
|
|
Copyright © 2000, Sven Guckes<BR>
|
|
Published in Issue 50 of <i>Linux Gazette</i>, February 2000</H5>
|
|
<!-- *** END copyright *** -->
|
|
|
|
<!--startcut ==========================================================-->
|
|
<P> <HR> <P>
|
|
<!-- *** BEGIN navbar *** -->
|
|
<A HREF="index.html"><IMG ALT="[ Table of Contents ]"
|
|
SRC="../gx/indexnew.gif" WIDTH=163 HEIGHT=60 ALIGN=bottom ></A>
|
|
<A HREF="../index.html"><IMG ALT="[ Front Page ]"
|
|
SRC="../gx/homenew.gif" WIDTH=163 HEIGHT=60 ALIGN=bottom></A>
|
|
<A HREF="ferrari.html"><IMG ALT="[ Prev ]" SRC="../gx/back2.gif" WIDTH=41 HEIGHT=60 ALIGN=bottom></A>
|
|
<A HREF="../faq/index.html"><IMG ALT="[ Linux Gazette FAQ ]"
|
|
SRC="./../gx/dennis/faq.gif"WIDTH=163 HEIGHT=60 ALIGN=bottom></A>
|
|
<A HREF="lamb.html"><IMG ALT="[ Next ]" SRC="../gx/fwd.gif" WIDTH=41 HEIGHT=60 ALIGN=bottom ></A>
|
|
<!-- *** END navbar *** -->
|
|
</BODY></HTML>
|
|
<!--endcut ============================================================-->
|