1562 lines
50 KiB
Plaintext
1562 lines
50 KiB
Plaintext
|
\input texinfo @c -*-texinfo-*-
|
||
|
@c %**start of header
|
||
|
@setfilename nano.info
|
||
|
@settitle nano
|
||
|
@c %**end of header
|
||
|
|
||
|
@smallbook
|
||
|
@set EDITION 0.4
|
||
|
@set VERSION 2.7.3
|
||
|
@set UPDATED December 2016
|
||
|
|
||
|
@dircategory Editors
|
||
|
@direntry
|
||
|
* nano: (nano). Small and friendly text editor.
|
||
|
@end direntry
|
||
|
|
||
|
@c tex
|
||
|
@c \overfullrule=0pt
|
||
|
@c end tex
|
||
|
|
||
|
@titlepage
|
||
|
@title GNU @code{nano}
|
||
|
@subtitle a small and friendly text editor.
|
||
|
@subtitle version 2.7.3
|
||
|
|
||
|
@author Chris Allegretta
|
||
|
@page
|
||
|
|
||
|
This manual documents GNU @code{nano}, a small and friendly text editor.
|
||
|
|
||
|
This manual is part of the GNU @code{nano} distribution.@*
|
||
|
@sp 4
|
||
|
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||
|
2009, 2014, 2015 Free Software Foundation, Inc.
|
||
|
|
||
|
This document is dual-licensed. You may distribute and/or modify it
|
||
|
under the terms of either of the following licenses:
|
||
|
|
||
|
* The GNU General Public License, as published by the Free Software
|
||
|
Foundation, version 3 or (at your option) any later version. You
|
||
|
should have received a copy of the GNU General Public License along
|
||
|
with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
|
||
|
* The GNU Free Documentation License, as published by the Free Software
|
||
|
Foundation, version 1.2 or (at your option) any later version, with no
|
||
|
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||
|
You should have received a copy of the GNU Free Documentation License
|
||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
|
||
|
You may contact the author by
|
||
|
e-mail: @email{chrisa@@asty.org}@*
|
||
|
@end titlepage
|
||
|
|
||
|
|
||
|
@node Top
|
||
|
@top
|
||
|
|
||
|
This manual documents GNU @code{nano}, a small and friendly text editor.
|
||
|
|
||
|
@menu
|
||
|
* Introduction::
|
||
|
* Invoking::
|
||
|
* Command-line Options::
|
||
|
* Editor Basics::
|
||
|
* Built-in Help::
|
||
|
* Feature Toggles::
|
||
|
* Nanorc Files::
|
||
|
* The File Browser::
|
||
|
* Pico Compatibility::
|
||
|
* Building and Configure Options::
|
||
|
@end menu
|
||
|
|
||
|
|
||
|
@node Introduction
|
||
|
@chapter Introduction
|
||
|
|
||
|
GNU @code{nano} is a small and friendly text editor. Besides basic text
|
||
|
editing, @code{nano} offers many extra features, such as an interactive
|
||
|
search-and-replace, undo/redo, syntax coloring, smooth scrolling,
|
||
|
auto-indentation, go-to-line-and-column-number, feature toggles,
|
||
|
file locking, backup files, and internationalization support.
|
||
|
|
||
|
The original goal for @code{nano} was to be a complete bug-for-bug
|
||
|
emulation of Pico. But currently the goal is to be as compatible
|
||
|
as possible while offering a superset of Pico's functionality. See
|
||
|
@xref{Pico Compatibility}, for more info.
|
||
|
|
||
|
Please report bugs via @url{https://savannah.gnu.org/bugs/?group=nano}.
|
||
|
|
||
|
|
||
|
@node Invoking
|
||
|
@chapter Invoking
|
||
|
|
||
|
The usual way to invoke @code{nano} is:
|
||
|
|
||
|
@quotation
|
||
|
@code{nano [FILE]}
|
||
|
@end quotation
|
||
|
|
||
|
But it is also possible to specify one or more options, and to edit
|
||
|
several files in a row. Additionally, the cursor can be put on a
|
||
|
specific line of a file by adding the line number
|
||
|
with a plus sign before the filename, and even in a specific column by
|
||
|
adding it with a comma. So the complete command synopsis is:
|
||
|
|
||
|
@quotation
|
||
|
@code{nano [OPTION]@dots{} [[+LINE[,COLUMN]|+,COLUMN] FILE]@dots{}}
|
||
|
@end quotation
|
||
|
|
||
|
But normallly you would set your preferred options in your
|
||
|
@file{.nanorc} file. And when the @code{positionlog} option is set
|
||
|
(making @code{nano} remember the cursor position when you close a file),
|
||
|
you will rarely need to specify a line number.
|
||
|
|
||
|
|
||
|
@node Command-line Options
|
||
|
@chapter Command-line Options
|
||
|
|
||
|
@command{nano} takes the following options from the command line:
|
||
|
|
||
|
@table @option
|
||
|
|
||
|
@item +@var{line},@var{column}
|
||
|
Start at line number @var{line} and column number @var{column} (at least one of
|
||
|
which must be specified) instead of the default of line 1, column 1.
|
||
|
|
||
|
@item -A
|
||
|
@itemx --smarthome
|
||
|
Make the Home key smarter. When Home is pressed anywhere but at the
|
||
|
very beginning of non-whitespace characters on a line, the cursor will
|
||
|
jump to that beginning (either forwards or backwards). If the cursor is
|
||
|
already at that position, it will jump to the true beginning of the
|
||
|
line.
|
||
|
|
||
|
@item -B
|
||
|
@itemx --backup
|
||
|
When saving a file, back up the previous version of it, using the current
|
||
|
filename suffixed with a tilde (@code{~}).
|
||
|
|
||
|
@item -C @var{directory}
|
||
|
@itemx --backupdir=@var{directory}
|
||
|
Make and keep not just one backup file, but make and keep a uniquely
|
||
|
numbered one every time a file is saved --- when backups are enabled.
|
||
|
The uniquely numbered files are stored in the specified directory.
|
||
|
|
||
|
@item -D
|
||
|
@itemx --boldtext
|
||
|
Use bold text instead of reverse video text.
|
||
|
|
||
|
@item -E
|
||
|
@itemx --tabstospaces
|
||
|
Convert typed tabs to spaces.
|
||
|
|
||
|
@item -F
|
||
|
@itemx --multibuffer
|
||
|
Read a file into a new buffer by default.
|
||
|
|
||
|
@item -G
|
||
|
@itemx --locking
|
||
|
Enable vim-style file locking when editing files.
|
||
|
|
||
|
@item -H
|
||
|
@itemx --historylog
|
||
|
Log search and replace strings to @file{~/.nano/search_history},
|
||
|
so they can be retrieved in later sessions.
|
||
|
|
||
|
@item -I
|
||
|
@itemx --ignorercfiles
|
||
|
Don't look at the system's nanorc file nor at the user's @file{~/.nanorc}.
|
||
|
|
||
|
@item -K
|
||
|
@itemx --rebindkeypad
|
||
|
Interpret the numeric keypad keys so that they all work properly. You
|
||
|
should only need to use this option if they don't, as mouse support
|
||
|
won't work properly with this option enabled.
|
||
|
|
||
|
@item -L
|
||
|
@itemx --nonewlines
|
||
|
Don't add newlines to the ends of files.
|
||
|
|
||
|
@item -N
|
||
|
@itemx --noconvert
|
||
|
Disable automatic conversion of files from DOS/Mac format.
|
||
|
|
||
|
@item -O
|
||
|
@itemx --morespace
|
||
|
Use the blank line below the titlebar as extra editing space.
|
||
|
|
||
|
@item -P
|
||
|
@itemx --positionlog
|
||
|
For the 200 most recent files, log the last position of the cursor,
|
||
|
and place it at that position again upon reopening such a file.
|
||
|
(The old form of this option, @code{--poslog}, is deprecated.)
|
||
|
|
||
|
@item -Q "@var{characters}"
|
||
|
@itemx --quotestr="@var{characters}"
|
||
|
Set the quoting string for justifying. The default value is
|
||
|
@t{"^([ \t]*[|>:@}#])+"} if extended regular expression support
|
||
|
is available, and @t{"> "} otherwise.
|
||
|
Note that @code{\t} stands for a literal Tab character.
|
||
|
|
||
|
@item -R
|
||
|
@itemx --restricted
|
||
|
Restricted mode: don't read or write to any file not specified on the
|
||
|
command line; don't read any nanorc files nor history files; don't allow
|
||
|
suspending nor spell checking; don't
|
||
|
allow a file to be appended to, prepended to, or saved under a different
|
||
|
name if it already has one; and don't use backup files.
|
||
|
This restricted mode is also accessible by invoking @command{nano} with
|
||
|
any name beginning with @code{r} (e.g.@: @command{rnano}).
|
||
|
|
||
|
@item -S
|
||
|
@itemx --smooth
|
||
|
Enable smooth scrolling. Text will scroll line-by-line, instead of the
|
||
|
usual chunk-by-chunk behavior.
|
||
|
|
||
|
@item -T @var{number}
|
||
|
@itemx --tabsize=@var{number}
|
||
|
Set the displayed tab length to @var{number} columns. The value of
|
||
|
@var{number} must be greater than 0. The default value is @t{8}.
|
||
|
|
||
|
@item -U
|
||
|
@itemx --quickblank
|
||
|
Do quick statusbar blanking. Statusbar messages will disappear after 1
|
||
|
keystroke instead of 25. Note that option @option{-c}
|
||
|
(@option{--constantshow}) overrides this.
|
||
|
|
||
|
@item -V
|
||
|
@itemx --version
|
||
|
Show the current version number and exit.
|
||
|
|
||
|
@item -W
|
||
|
@itemx --wordbounds
|
||
|
Detect word boundaries differently by treating punctuation
|
||
|
characters as parts of words.
|
||
|
|
||
|
@item -X "@var{characters}"
|
||
|
@itemx --wordchars="@var{characters}"
|
||
|
Specify which other characters (besides the normal alphanumeric ones)
|
||
|
should be considered as parts of words. This overrides option
|
||
|
@option{-W} (@option{--wordbounds}).
|
||
|
|
||
|
@item -Y @var{name}
|
||
|
@itemx --syntax=@var{name}
|
||
|
Specify a specific syntax from the nanorc files to use for highlighting.
|
||
|
See @xref{Syntax Highlighting}, for more info.
|
||
|
|
||
|
@item -c
|
||
|
@itemx --constantshow
|
||
|
Constantly display the cursor position and line number on the statusbar.
|
||
|
Note that this overrides option @option{-U} (@option{--quickblank}).
|
||
|
|
||
|
@item -d
|
||
|
@itemx --rebinddelete
|
||
|
Interpret the Delete key differently so that both Backspace and Delete
|
||
|
work properly. You should only need to use this option if Backspace
|
||
|
acts like Delete on your system.
|
||
|
|
||
|
@item -g
|
||
|
@itemx --showcursor
|
||
|
Make the cursor visible in the file browser, putting it on the
|
||
|
highlighted item. Useful for braille users.
|
||
|
|
||
|
@item -h
|
||
|
@itemx --help
|
||
|
Show a summary of command-line options and exit.
|
||
|
|
||
|
@item -i
|
||
|
@itemx --autoindent
|
||
|
Automatically indent new lines to the same number of spaces and tabs as
|
||
|
the previous line.
|
||
|
|
||
|
@item -k
|
||
|
@itemx --cut
|
||
|
Make the 'Cut Text' command (normally ^K) cut from the current cursor
|
||
|
position to the end of the line, instead of cutting the entire line.
|
||
|
|
||
|
@item -l
|
||
|
@itemx --linenumbers
|
||
|
Display line numbers to the left of the text area.
|
||
|
|
||
|
@item -m
|
||
|
@itemx --mouse
|
||
|
Enable mouse support, if available for your system. When enabled, mouse
|
||
|
clicks can be used to place the cursor, set the mark (with a double
|
||
|
click), and execute shortcuts. The mouse will work in the X Window
|
||
|
System, and on the console when gpm is running. Text can still be
|
||
|
selected through dragging by holding down the Shift key.
|
||
|
|
||
|
@item -n
|
||
|
@itemx --noread
|
||
|
Treat any name given on the command line as a new file. This allows
|
||
|
@command{nano} to write to named pipes: it will start with a blank buffer,
|
||
|
and will write to the pipe when the user saves the "file". This way
|
||
|
@command{nano} can be used as an editor in combination with for instance
|
||
|
@command{gpg} without having to write sensitive data to disk first.
|
||
|
|
||
|
@item -o @var{directory}
|
||
|
@itemx --operatingdir=@var{directory}
|
||
|
Set the operating directory. This makes @command{nano} set up something
|
||
|
similar to a chroot.
|
||
|
|
||
|
@item -p
|
||
|
@itemx --preserve
|
||
|
Preserve the ^Q (XON) and ^S (XOFF) sequences so data being sent to the
|
||
|
editor can be stopped and started.
|
||
|
|
||
|
@item -q
|
||
|
@itemx --quiet
|
||
|
Do not report errors in the nanorc file nor ask them to be acknowledged
|
||
|
by pressing Enter at startup.
|
||
|
|
||
|
@item -r @var{number}
|
||
|
@itemx --fill=@var{number}
|
||
|
Hard-wrap lines at column @var{number} (by inserting a newline character).
|
||
|
If the given value is 0 or less, wrapping will occur at the width of
|
||
|
the screen minus the given amount, allowing the wrapping width to
|
||
|
vary along with the width of the screen if and when it is resized.
|
||
|
The default value is @t{-8}. This option conflicts with @option{-w}
|
||
|
(@option{--nowrap}); the last one given takes effect.
|
||
|
|
||
|
@item -s @var{program}
|
||
|
@itemx --speller=@var{program}
|
||
|
Invoke the given program as the spell checker. By default, @command{nano}
|
||
|
uses the command specified in the @env{SPELL} environment variable, or,
|
||
|
if @env{SPELL} is not set, its own interactive spell checker that requires
|
||
|
the @command{spell} program to be installed on your system.
|
||
|
|
||
|
@item -t
|
||
|
@itemx --tempfile
|
||
|
Don't ask whether to save a modified buffer when exiting with ^X, but
|
||
|
assume yes. This option is useful when @command{nano} is used as the
|
||
|
composer of a mailer program.
|
||
|
|
||
|
@item -u
|
||
|
@item --unix
|
||
|
Save a file by default in Unix format. This overrides nano's
|
||
|
default behavior of saving a file in the format that it had.
|
||
|
(This option has no effect when you also use @code{--noconvert}.)
|
||
|
|
||
|
@item -v
|
||
|
@itemx --view
|
||
|
Don't allow the contents of the file to be altered. Note that this
|
||
|
option should NOT be used in place of correct file permissions to
|
||
|
implement a read-only file.
|
||
|
|
||
|
@item -w
|
||
|
@itemx --nowrap
|
||
|
Don't hard-wrap long lines at any length. This option conflicts with
|
||
|
@option{-r} (@option{--fill}); the last one given takes effect.
|
||
|
|
||
|
@anchor{Expert Mode}
|
||
|
@item -x
|
||
|
@itemx --nohelp
|
||
|
Expert Mode: don't show the Shortcut List at the bottom of the screen.
|
||
|
This affects the location of the statusbar as well, as in Expert Mode it
|
||
|
is located at the very bottom of the editor.
|
||
|
|
||
|
Note: When accessing the help system, Expert Mode is temporarily
|
||
|
disabled to display the help-system navigation keys.
|
||
|
|
||
|
@item -z
|
||
|
@itemx --suspend
|
||
|
Enable the ability to suspend @command{nano} using the system's suspend
|
||
|
keystroke (usually ^Z).
|
||
|
|
||
|
@item -$
|
||
|
@itemx --softwrap
|
||
|
Enable 'soft wrapping'. This will make @command{nano} attempt to display the
|
||
|
entire contents of any line, even if it is longer than the screen width, by
|
||
|
continuing it over multiple screen lines. Since
|
||
|
@code{$} normally refers to a variable in the Unix shell, you should specify
|
||
|
this option last when using other options (e.g.@: @code{nano -wS$}) or pass it
|
||
|
separately (e.g.@: @code{nano -wS -$}).
|
||
|
|
||
|
@item -a
|
||
|
@itemx -b
|
||
|
@itemx -e
|
||
|
@itemx -f
|
||
|
@itemx -j
|
||
|
Ignored, for compatibility with Pico.
|
||
|
|
||
|
@end table
|
||
|
|
||
|
|
||
|
@node Editor Basics
|
||
|
@chapter Editor Basics
|
||
|
|
||
|
@menu
|
||
|
* Entering Text::
|
||
|
* Commands::
|
||
|
* The Cutbuffer::
|
||
|
* The Mark::
|
||
|
* Screen Layout::
|
||
|
* Search and Replace::
|
||
|
* Using the Mouse::
|
||
|
* Limitation::
|
||
|
@end menu
|
||
|
|
||
|
@node Entering Text
|
||
|
@section Entering Text
|
||
|
|
||
|
@code{nano} is a "modeless" editor. This means that all keystrokes,
|
||
|
with the exception of Control and Meta sequences, enter text into the
|
||
|
file being edited.
|
||
|
|
||
|
Characters not present on the keyboard can be entered in two ways:
|
||
|
|
||
|
@itemize @bullet
|
||
|
@item
|
||
|
For characters with a single-byte code,
|
||
|
pressing the Esc key twice and then typing a three-digit decimal number
|
||
|
(from 000 to 255) will make @code{nano} behave as if you typed the key
|
||
|
with that value.
|
||
|
|
||
|
@item
|
||
|
For any possible character, pressing M-V (Alt+V) and then typing a
|
||
|
six-digit hexadecimal number (starting with 0 or 1) will enter the
|
||
|
corresponding Unicode character into the buffer.
|
||
|
@end itemize
|
||
|
|
||
|
For example, typing "Esc Esc 2 3 4" will enter the character "ê" ---
|
||
|
useful when going to a French party. Typing "M-V 0 0 2 5 c 6" will
|
||
|
enter the symbol "◆", a little black diamond.
|
||
|
|
||
|
@node Commands
|
||
|
@section Commands
|
||
|
|
||
|
Commands are given by using the Control key (Ctrl, shown as @code{^})
|
||
|
or the Meta key (Alt or Cmd, shown as @code{M-}).
|
||
|
|
||
|
@itemize @bullet
|
||
|
@item
|
||
|
A control-key sequence is entered by holding down the Ctrl key and
|
||
|
pressing the desired key.
|
||
|
|
||
|
@item
|
||
|
A meta-key sequence is entered by holding down the Meta key (normally
|
||
|
the Alt key) and pressing the desired key.
|
||
|
@end itemize
|
||
|
|
||
|
If for some reason on your system the combinations with Ctrl or Alt do
|
||
|
not work, you can generate them by using the Esc key. A control-key
|
||
|
sequence is generated by pressing the Esc key twice and then pressing
|
||
|
the desired key, and a meta-key sequence by pressing the Esc key once
|
||
|
and then pressing the desired key.
|
||
|
|
||
|
@node The Cutbuffer
|
||
|
@section The Cutbuffer
|
||
|
|
||
|
Text can be cut from a file, a whole line at a time, by using the 'Cut Text'
|
||
|
command (default key binding: ^K). The cut line is stored in the cutbuffer.
|
||
|
Consecutive strokes of ^K will add each cut line to this buffer, but a ^K
|
||
|
after any other keystroke will overwrite the entire cutbuffer.
|
||
|
|
||
|
The contents of the cutbuffer can be pasted back into the file with the
|
||
|
'Uncut Text' command (default key binding: ^U).
|
||
|
|
||
|
A line of text can be copied into the cutbuffer (without cutting it) with
|
||
|
the 'Copy Text' command (default key binding: M-6).
|
||
|
|
||
|
@node The Mark
|
||
|
@section The Mark
|
||
|
|
||
|
Text can be selected by first 'setting the Mark' (default key bindings:
|
||
|
^6 and M-A) and then moving the cursor to the other end of the portion
|
||
|
to be selected. The selected portion of text will be highlighted in
|
||
|
reverse video (or in bold if you set the boldtext option).
|
||
|
This selection can now be cut or copied in its entirety with a single
|
||
|
^K or M-6. Or the selection can be used to limit the scope of a
|
||
|
search-and-replace (^\) or spell-checking session (^T).
|
||
|
|
||
|
Cutting or copying selected text will toggle the mark off automatically.
|
||
|
If necessary, it can be toggled off manually with another ^6 or M-A.
|
||
|
|
||
|
@node Screen Layout
|
||
|
@section Screen Layout
|
||
|
|
||
|
The default screen of nano consists of five areas. From top to bottom
|
||
|
these are: the titlebar, a blank line, the edit window, the statusbar,
|
||
|
and two help lines.
|
||
|
|
||
|
The titlebar consists of
|
||
|
three sections: left, center and right. The section on the left
|
||
|
displays the version of @code{nano} being used. The center section
|
||
|
displays the current filename, or "New Buffer" if the file has not yet
|
||
|
been named. The section on the right displays "Modified" if the
|
||
|
file has been modified since it was last saved or opened.
|
||
|
|
||
|
The statusbar is the third line from the bottom of the screen. It
|
||
|
shows important and informational messages. Any error messages that
|
||
|
occur from using the editor will appear on the statusbar. Any questions
|
||
|
that are asked of the user will be asked on the statusbar, and any user
|
||
|
input (search strings, filenames, etc.) will be input on the statusbar.
|
||
|
|
||
|
The two help lines at the bottom of the screen show some of the most
|
||
|
essential functions of the editor. These two lines are called the
|
||
|
Shortcut List.
|
||
|
|
||
|
@node Search and Replace
|
||
|
@section Search and Replace
|
||
|
|
||
|
One can search the current buffer for the occurrence of any string
|
||
|
with the Search command (default key binding: ^W). The default search
|
||
|
mode is forward, case-insensitive, and for literal strings. But one
|
||
|
can search backwards by pressing M-B, search case sensitively with M-C,
|
||
|
and interpret regular expressions in the search string with M-R.
|
||
|
|
||
|
A regular expression in a search string always covers just one line;
|
||
|
it cannot span multiple lines. And when replacing (with ^\ or M-R)
|
||
|
the replacement string cannot contain a newline (LF).
|
||
|
|
||
|
@node Using the Mouse
|
||
|
@section Using the Mouse
|
||
|
|
||
|
When mouse support has been configured and enabled, a single mouse click
|
||
|
places the cursor at the indicated position. Clicking a second time in
|
||
|
the same position toggles the mark. Clicking in the shortcut list
|
||
|
executes the selected shortcut. To be able to select text with the
|
||
|
left button, or paste text with the middle button, hold down the
|
||
|
Shift key during those actions.
|
||
|
|
||
|
The mouse will work in the X Window System, and on the console when gpm
|
||
|
is running.
|
||
|
|
||
|
@node Limitation
|
||
|
@section Limitation
|
||
|
|
||
|
Justifications (@code{^J}) and reindentations (@code{M-@{} and @code{M-@}})
|
||
|
are not yet covered by the general undo system. So after a justification
|
||
|
that is not immediately undone, or after any reindentation, earlier edits
|
||
|
cannot be undone any more. The workaround is, of course, to exit without
|
||
|
saving.
|
||
|
|
||
|
|
||
|
@node Built-in Help
|
||
|
@chapter Built-in Help
|
||
|
|
||
|
The built-in help system in @code{nano} is available by pressing ^G@.
|
||
|
It is fairly self-explanatory. It documents the various parts of the
|
||
|
editor and the available keystrokes. Navigation is via the ^Y (Page Up)
|
||
|
and ^V (Page Down) keys. ^X exits the help system.
|
||
|
|
||
|
|
||
|
@node Feature Toggles
|
||
|
@chapter Feature Toggles
|
||
|
|
||
|
Toggles allow you to change on-the-fly certain aspects of the editor
|
||
|
which would normally be specified via command-line options. They are
|
||
|
invoked via Meta-key sequences (see @xref{Commands}, for more info).
|
||
|
The following global toggles are available:
|
||
|
|
||
|
@table @code
|
||
|
|
||
|
@item Backup Files Toggle (Meta-B)
|
||
|
toggles the @code{-B} (@code{--backup}) command-line option.
|
||
|
|
||
|
@item Constant Cursor Position Display Toggle (Meta-C)
|
||
|
toggles the @code{-c} (@code{--constantshow}) command-line option.
|
||
|
|
||
|
@item Multiple File Buffers Toggle (Meta-F)
|
||
|
toggles the @code{-F} (@code{--multibuffer}) command-line option.
|
||
|
|
||
|
@item Smart Home Key Toggle (Meta-H)
|
||
|
toggles the @code{-A} (@code{--smarthome}) command-line option.
|
||
|
|
||
|
@item Auto Indent Toggle (Meta-I)
|
||
|
toggles the @code{-i} (@code{--autoindent}) command-line option.
|
||
|
|
||
|
@item Cut To End Toggle (Meta-K)
|
||
|
toggles the @code{-k} (@code{--cut}) command-line option.
|
||
|
|
||
|
@item Long Line Wrapping Toggle (Meta-L)
|
||
|
toggles the @code{-w} (@code{--nowrap}) command-line option.
|
||
|
|
||
|
@item Mouse Support Toggle (Meta-M)
|
||
|
toggles the @code{-m} (@code{--mouse}) command-line option.
|
||
|
|
||
|
@item No Conversion From DOS/Mac Format Toggle (Meta-N)
|
||
|
toggles the @code{-N} (@code{--noconvert}) command-line option.
|
||
|
|
||
|
@item More Space For Editing Toggle (Meta-O)
|
||
|
toggles the @code{-O} (@code{--morespace}) command-line option.
|
||
|
|
||
|
@item Whitespace Display Toggle (Meta-P)
|
||
|
toggles the whitespace-display mode.
|
||
|
See @xref{Whitespace}, for more info.
|
||
|
|
||
|
@item Tabs to Spaces Toggle (Meta-Q)
|
||
|
toggles the @code{-E} (@code{--tabstospaces}) command-line option.
|
||
|
|
||
|
@item Smooth Scrolling Toggle (Meta-S)
|
||
|
toggles the @code{-S} (@code{--smooth}) command-line option.
|
||
|
|
||
|
@item Expert/No Help Toggle (Meta-X)
|
||
|
toggles the @code{-x} (@code{--nohelp}) command-line option.
|
||
|
|
||
|
@item Color Syntax Highlighting Toggle (Meta-Y)
|
||
|
toggles color syntax highlighting if you have color syntaxes in your
|
||
|
nanorc. See @xref{Syntax Highlighting}, for more info.
|
||
|
|
||
|
@item Suspension Toggle (Meta-Z)
|
||
|
toggles the @code{-z} (@code{--suspend}) command-line option.
|
||
|
|
||
|
@item Soft Wrapping Toggle (Meta-$)
|
||
|
toggles the @code{-$} (@code{--softwrap}) command-line option.
|
||
|
|
||
|
@item Line Numbers Toggle (Meta-#)
|
||
|
toggles the @code{-l} (@code{--linenumbers}) command-line option.
|
||
|
|
||
|
@end table
|
||
|
|
||
|
|
||
|
@node Nanorc Files
|
||
|
@chapter Nanorc Files
|
||
|
|
||
|
The nanorc files contain the default settings for @code{nano}. They
|
||
|
should be in Unix format, not in DOS or Mac format. During startup,
|
||
|
@code{nano} will first read the system-wide settings, from /etc/nanorc
|
||
|
(the exact path might be different), and then the user-specific settings,
|
||
|
from @file{~/.nanorc}.
|
||
|
|
||
|
A nanorc file accepts a series of "set" and "unset" commands, which can
|
||
|
be used to configure @code{nano} on startup without using command-line
|
||
|
options. Additionally, there are some commands to define syntax highlighting
|
||
|
and to rebind keys --- @xref{Syntax Highlighting}, and @xref{Rebinding Keys}.
|
||
|
@code{nano} will read one command per line.
|
||
|
|
||
|
Options in nanorc files take precedence over @code{nano}'s defaults, and
|
||
|
command-line options override nanorc settings. Also, options that do not
|
||
|
take an argument are unset by default. So using the @code{unset} command
|
||
|
is only needed when wanting to override a setting of the system's nanorc
|
||
|
file in your own @file{~/.nanorc}. Options that take an argument cannot
|
||
|
be unset.
|
||
|
|
||
|
Quotes inside string parameters don't have to be escaped with
|
||
|
backslashes. The last double quote in the string will be treated as its
|
||
|
end. For example, for the @code{brackets} option, @t{""')>]@}"} will match
|
||
|
@code{"}, @code{'}, @code{)}, @code{>}, @code{]}, and @code{@}}.
|
||
|
|
||
|
@menu
|
||
|
* Settings::
|
||
|
* Syntax Highlighting::
|
||
|
* Rebinding Keys::
|
||
|
@end menu
|
||
|
|
||
|
@node Settings
|
||
|
@section Settings
|
||
|
|
||
|
The supported settings in a nanorc file are:
|
||
|
|
||
|
@table @code
|
||
|
|
||
|
@item set allow_insecure_backup
|
||
|
When backing up files, allow the backup to succeed even if its
|
||
|
permissions can't be (re)set due to special OS considerations.
|
||
|
You should NOT enable this option unless you are sure you need it.
|
||
|
|
||
|
@item set autoindent
|
||
|
Use auto-indentation.
|
||
|
|
||
|
@item set backup
|
||
|
When saving a file, back up the previous version of it, using the current
|
||
|
filename suffixed with a tilde (@code{~}).
|
||
|
|
||
|
@item set backupdir "directory"
|
||
|
Make and keep not just one backup file, but make and keep a uniquely
|
||
|
numbered one every time a file is saved --- when backups are enabled
|
||
|
with @code{set backup} or @code{--backup} or @code{-B}.
|
||
|
The uniquely numbered files are stored in the specified directory.
|
||
|
|
||
|
@item set backwards
|
||
|
Do backwards searches by default.
|
||
|
|
||
|
@item set boldtext
|
||
|
Use bold instead of reverse video for the titlebar, statusbar, key combos,
|
||
|
and selected text. This can be overridden for the first three by setting
|
||
|
the options @code{titlecolor}, @code{statuscolor}, and @code{keycolor}.
|
||
|
|
||
|
@item set brackets "@var{string}"
|
||
|
Set the characters treated as closing brackets when justifying
|
||
|
paragraphs. This may not include blank characters. Only closing
|
||
|
punctuation (see @code{set punct}), optionally followed by the specified
|
||
|
closing brackets, can end sentences. The default value is
|
||
|
@t{"')>]@}"}.
|
||
|
|
||
|
@item set casesensitive
|
||
|
Do case-sensitive searches by default.
|
||
|
|
||
|
@item set constantshow
|
||
|
Constantly display the cursor position in the status bar.
|
||
|
(The old form of this option, @code{set const}, is deprecated.)
|
||
|
|
||
|
@item set cut
|
||
|
Use cut-to-end-of-line by default, instead of cutting the whole line.
|
||
|
|
||
|
@item set fill @var{number}
|
||
|
Hard-wrap lines at column number @var{number}. If @var{number} is 0 or less,
|
||
|
the maximum line length will be the screen width less @var{number} columns.
|
||
|
The default value is @t{-8}.
|
||
|
|
||
|
@item set functioncolor @var{fgcolor},@var{bgcolor}
|
||
|
Specify the color combination to use for the function descriptions
|
||
|
in the two help lines at the bottom of the screen.
|
||
|
See @code{set titlecolor} for more details.
|
||
|
|
||
|
@item set historylog
|
||
|
Enable the use of @file{~/.nano/search_history} for saving and reading
|
||
|
search/replace strings.
|
||
|
|
||
|
@item set justifytrim
|
||
|
When justifying text, trailing whitespace will automatically be removed.
|
||
|
|
||
|
@item set keycolor @var{fgcolor},@var{bgcolor}
|
||
|
Specify the color combination to use for the shortcut key combos
|
||
|
in the two help lines at the bottom of the screen.
|
||
|
See @code{set titlecolor} for more details.
|
||
|
|
||
|
@item set linenumbers
|
||
|
Display line numbers to the left of the text area.
|
||
|
|
||
|
@item set locking
|
||
|
Enable vim-style lock-files for when editing files.
|
||
|
|
||
|
@item set matchbrackets "@var{string}"
|
||
|
Set the opening and closing brackets that can be found by bracket
|
||
|
searches. This may not include blank characters. The opening set must
|
||
|
come before the closing set, and the two sets must be in the same order.
|
||
|
The default value is @t{"(<[@{)>]@}"}.
|
||
|
|
||
|
@item set morespace
|
||
|
Use the blank line below the titlebar as extra editing space.
|
||
|
|
||
|
@item set mouse
|
||
|
Enable mouse support, so that mouse clicks can be used to place the
|
||
|
cursor, set the mark (with a double click), or execute shortcuts.
|
||
|
|
||
|
@item set multibuffer
|
||
|
When reading in a file with ^R, insert it into a new buffer by default.
|
||
|
|
||
|
@item set noconvert
|
||
|
Don't convert files from DOS/Mac format.
|
||
|
|
||
|
@item set nohelp
|
||
|
Don't display the help lists at the bottom of the screen.
|
||
|
|
||
|
@item set nonewlines
|
||
|
Don't add newlines to the ends of files.
|
||
|
|
||
|
@item set nowrap
|
||
|
Don't hard-wrap text at all.
|
||
|
|
||
|
@item set numbercolor @var{fgcolor},@var{bgcolor}
|
||
|
Specify the color combination to use for line numbers.
|
||
|
See @code{set titlecolor} for more details.
|
||
|
|
||
|
@item set operatingdir "directory"
|
||
|
@code{nano} will only read and write files inside "directory" and its
|
||
|
subdirectories. Also, the current directory is changed to here, so
|
||
|
files are inserted from this directory. By default, the operating
|
||
|
directory feature is turned off.
|
||
|
|
||
|
@item set positionlog
|
||
|
Save the cursor position of files between editing sessions.
|
||
|
The cursor position is remembered for the 200 most-recently edited files.
|
||
|
(The old form of this option, @code{set poslog}, is deprecated.)
|
||
|
|
||
|
@item set preserve
|
||
|
Preserve the XON and XOFF keys (^Q and ^S).
|
||
|
|
||
|
@item set punct "@var{string}"
|
||
|
Set the characters treated as closing punctuation when justifying
|
||
|
paragraphs. This may not include blank characters. Only the
|
||
|
specified closing punctuation, optionally followed by closing brackets
|
||
|
(see @code{set brackets}), can end sentences.
|
||
|
The default value is @t{"!.?"}.
|
||
|
|
||
|
@item set quickblank
|
||
|
Do quick statusbar blanking. Statusbar messages will disappear after 1
|
||
|
keystroke instead of 25.
|
||
|
|
||
|
@item set quiet
|
||
|
When set, @code{nano} will not report errors in the nanorc file nor ask them
|
||
|
to be acknowledged by pressing Enter at startup. If this option is used, it
|
||
|
should be placed at the top of the file to be fully effective.
|
||
|
|
||
|
@item set quotestr "@var{string}"
|
||
|
The email-quote string, used to justify email-quoted paragraphs. This
|
||
|
is an extended regular expression if your system supports them,
|
||
|
otherwise a literal string. The default value is
|
||
|
@t{"^([ \\t]*[#:>\\|@}])+"} if you have extended regular expression
|
||
|
support, and @t{"> "} otherwise.
|
||
|
Note that @code{\t} stands for a literal Tab character.
|
||
|
|
||
|
@item set rebinddelete
|
||
|
Interpret the Delete key differently so that both Backspace and Delete
|
||
|
work properly. You should only need to use this option if Backspace
|
||
|
acts like Delete on your system.
|
||
|
|
||
|
@item set rebindkeypad
|
||
|
Interpret the numeric keypad keys so that they all work properly. You
|
||
|
should only need to use this option if they don't, as mouse support
|
||
|
won't work properly with this option enabled.
|
||
|
|
||
|
@item set regexp
|
||
|
Do extended regular expression searches by default.
|
||
|
|
||
|
@item set showcursor
|
||
|
Put the cursor on the highlighted item in the file browser, to aid
|
||
|
braille users.
|
||
|
|
||
|
@item set smarthome
|
||
|
Make the Home key smarter. When Home is pressed anywhere but at the
|
||
|
very beginning of non-whitespace characters on a line, the cursor will
|
||
|
jump to that beginning (either forwards or backwards). If the cursor is
|
||
|
already at that position, it will jump to the true beginning of the
|
||
|
line.
|
||
|
|
||
|
@item set smooth
|
||
|
Use smooth scrolling by default.
|
||
|
|
||
|
@item set softwrap
|
||
|
Enable soft line wrapping for easier viewing of very long lines.
|
||
|
|
||
|
@item set speller "spellprog"
|
||
|
Use spelling checker "spellprog" instead of the built-in one, which
|
||
|
calls "spell".
|
||
|
|
||
|
@item set statuscolor @var{fgcolor},@var{bgcolor}
|
||
|
Specify the color combination to use for the statusbar.
|
||
|
See @code{set titlecolor} for more details.
|
||
|
|
||
|
@item set suspend
|
||
|
Allow @code{nano} to be suspended.
|
||
|
|
||
|
@item set tabsize @var{number}
|
||
|
Use a tab size of @var{number} columns. The value of @var{number} must be
|
||
|
greater than 0. The default value is @t{8}.
|
||
|
|
||
|
@item set tabstospaces
|
||
|
Convert typed tabs to spaces.
|
||
|
|
||
|
@item set tempfile
|
||
|
Save automatically on exit, don't prompt.
|
||
|
|
||
|
@item set titlecolor @var{fgcolor},@var{bgcolor}
|
||
|
Specify the color combination to use for the titlebar.
|
||
|
Valid color names for foreground and background are:
|
||
|
white, black, blue, green, red, cyan, yellow, and magenta.
|
||
|
The name of the foreground color may be prefixed with 'bright'.
|
||
|
And either @var{fgcolor} or @var{,bgcolor} may be left out.
|
||
|
|
||
|
@item set unix
|
||
|
Save a file by default in Unix format. This overrides nano's
|
||
|
default behavior of saving a file in the format that it had.
|
||
|
(This option has no effect when you also use @code{set noconvert}.)
|
||
|
|
||
|
@item set view
|
||
|
Disallow file modification.
|
||
|
|
||
|
@anchor{Whitespace}
|
||
|
@item set whitespace "@var{string}"
|
||
|
Set the two characters used to indicate the presence of tabs and
|
||
|
spaces. They must be single-column characters. The default pair
|
||
|
for a UTF-8 locale is @t{"»·"}, and for other locales @t{">."}.
|
||
|
|
||
|
@item set wordbounds
|
||
|
Detect word boundaries differently by treating punctuation
|
||
|
characters as part of a word.
|
||
|
|
||
|
@item set wordchars "@var{string}"
|
||
|
Specify which other characters (besides the normal alphanumeric ones)
|
||
|
should be considered as parts of words. This overrides the option
|
||
|
@code{wordbounds}.
|
||
|
|
||
|
@end table
|
||
|
|
||
|
@node Syntax Highlighting
|
||
|
@section Syntax Highlighting
|
||
|
|
||
|
Coloring the different syntactic elements of a file
|
||
|
is done via regular expressions (see the @code{color} command below).
|
||
|
This is inherently imperfect, because regular expressions are not
|
||
|
powerful enough to fully parse a file. Nevertheless, regular
|
||
|
expressions can do a lot and are easy to make, so they are a
|
||
|
good fit for a small editor like @code{nano}.
|
||
|
|
||
|
A separate syntax can be defined for each kind of file
|
||
|
via the following commands in a nanorc file:
|
||
|
|
||
|
@table @code
|
||
|
|
||
|
@item syntax "str" ["fileregex" @dots{}]
|
||
|
Defines a syntax named "str" which can be activated via the @code{-Y/--syntax}
|
||
|
command-line option, or will be automatically activated if the current
|
||
|
filename matches the extended regular expression "fileregex". All
|
||
|
subsequent @code{color}, @code{icolor}, @code{header} and other such
|
||
|
statements will apply to this "str" syntax until a new @code{syntax}
|
||
|
command is encountered.
|
||
|
|
||
|
The "none" syntax is reserved; specifying it on the command line is the
|
||
|
same as not having a syntax at all. The "default" syntax is special: it
|
||
|
takes no "fileregex", and applies to files that don't match any
|
||
|
syntax's "fileregex".
|
||
|
|
||
|
@item linter program [arg @dots{}]
|
||
|
Use the given program to do a syntax check on the current file
|
||
|
(this overrides the speller function when defined).
|
||
|
|
||
|
@item formatter program [arg @dots{}]
|
||
|
Use the given program to automatically reformat text.
|
||
|
Useful in certain programming languages (e.g.@: Go).
|
||
|
|
||
|
@item header "regex" @dots{}
|
||
|
Add one or more regexes which will
|
||
|
be compared against the very first line of the file to be edited,
|
||
|
to determine whether this syntax should be used for that file.
|
||
|
|
||
|
@item magic "regex" @dots{}
|
||
|
Add one or more regexes which will be
|
||
|
compared against the result of querying the magic database about the file
|
||
|
to be edited, to determine whether this syntax should be used for that
|
||
|
file. This functionality only works when libmagic is installed on the
|
||
|
system and will be silently ignored otherwise.
|
||
|
|
||
|
@item comment "string"
|
||
|
Use the given string for commenting and uncommenting lines. A vertical bar or
|
||
|
pipe character (|) designates bracket-style comments; for example, "/*|*/" for
|
||
|
CSS files. The characters before the pipe are prepended to the line and the
|
||
|
characters after the pipe are appended at the end of the line. If no pipe
|
||
|
character is present, the entire string is prepended; for example, "#" for
|
||
|
Python files. If empty double quotes are specified, the comment/uncomment
|
||
|
functions are disabled; for example, "" for JSON. Double quotes or backslashes
|
||
|
may be escaped with a backslash; for example, ".\\"" for man page source.
|
||
|
|
||
|
@item color fgcolor,bgcolor "regex" @dots{}
|
||
|
Display all pieces of text that match the
|
||
|
extended regular expression "regex" with foreground color "fgcolor" and
|
||
|
background color "bgcolor", at least one of which must be specified.
|
||
|
Valid colors for foreground and background are: white, black, red,
|
||
|
blue, green, yellow, magenta, and cyan. You may use the prefix "bright"
|
||
|
to get a stronger color highlight for the foreground. If your
|
||
|
terminal supports transparency, not specifying a "bgcolor" tells @code{nano}
|
||
|
to attempt to use a transparent background.
|
||
|
|
||
|
@item icolor fgcolor,bgcolor "regex" @dots{}
|
||
|
Same as above, except that the text matching is case insensitive.
|
||
|
|
||
|
@item color fgcolor,bgcolor start="sr" end="er"
|
||
|
Display all pieces of text whose start matches extended regular expression
|
||
|
"sr" and whose end matches extended regular expression "er" with foreground
|
||
|
color "fgcolor" and background color "bgcolor", at least one of which
|
||
|
must be specified. This means that, after an initial instance of "sr",
|
||
|
all text will be highlighted until the first instance of "er".
|
||
|
This allows syntax highlighting to span multiple lines.
|
||
|
|
||
|
@item icolor fgcolor,bgcolor start="sr" end="er"
|
||
|
Same as above, except that the text matching is case insensitive.
|
||
|
|
||
|
@item include "syntaxfile"
|
||
|
Read in self-contained color syntaxes from "syntaxfile". Note that
|
||
|
"syntaxfile" may contain only the above commands, from @code{syntax}
|
||
|
to @code{icolor}.
|
||
|
|
||
|
@item extendsyntax str directive [arg @dots{}]
|
||
|
Extend the syntax previously defined as str to include new information.
|
||
|
This allows you to add a new @code{color}, @code{icolor}, @code{header},
|
||
|
@code{magic}, @code{comment}, @code{linter}, or @code{formatter} directive to an already
|
||
|
defined syntax --- useful when you want to slightly improve a syntax defined
|
||
|
in one of the system-installed files (which are normally not writable).
|
||
|
|
||
|
@end table
|
||
|
|
||
|
@node Rebinding Keys
|
||
|
@section Rebinding Keys
|
||
|
|
||
|
Key bindings can be changed via the following two commands in a
|
||
|
nanorc file:
|
||
|
|
||
|
@table @code
|
||
|
|
||
|
@item bind key function menu
|
||
|
Rebinds @code{key} to @code{function} in the context of @code{menu}
|
||
|
(or in all menus where the function exists by using @code{all}).
|
||
|
|
||
|
@item unbind key menu
|
||
|
Unbinds @code{key} from @code{menu}
|
||
|
(or from all menus where it exists by using @code{all}).
|
||
|
|
||
|
@end table
|
||
|
|
||
|
The format of @code{key} should be one of:
|
||
|
|
||
|
@table @code
|
||
|
|
||
|
@item ^
|
||
|
followed by an alpha character or the word "Space".
|
||
|
Example: @code{^C}
|
||
|
|
||
|
@item M-
|
||
|
followed by a printable character or the word "Space".
|
||
|
Example: @code{M-C}
|
||
|
|
||
|
@item F
|
||
|
followed by a numeric value from 1 to 16.
|
||
|
Example: @code{F10}
|
||
|
|
||
|
@end table
|
||
|
|
||
|
Valid names for the @code{function} to be bound are:
|
||
|
|
||
|
@table @code
|
||
|
|
||
|
@item help
|
||
|
Invokes the help viewer.
|
||
|
|
||
|
@item cancel
|
||
|
Cancels the current command.
|
||
|
|
||
|
@item exit
|
||
|
Exits from the program (or from the help viewer or the file browser).
|
||
|
|
||
|
@item writeout
|
||
|
Writes the current buffer to disk, asking for a name.
|
||
|
|
||
|
@item savefile
|
||
|
Writes the current file to disk without prompting or warning.
|
||
|
|
||
|
@item insert
|
||
|
Inserts a file into the current buffer (at the current cursor position),
|
||
|
or into a new buffer when option @code{multibuffer} is set.
|
||
|
|
||
|
@item whereis
|
||
|
Searches for text in the current buffer --- or for filenames matching
|
||
|
a string in the current list in the file browser
|
||
|
|
||
|
@item searchagain
|
||
|
Repeats the last search command without prompting.
|
||
|
(The form 'research' is deprecated.)
|
||
|
|
||
|
@item findprevious
|
||
|
As @code{searchagain}, but always in the backward direction.
|
||
|
|
||
|
@item findnext
|
||
|
As @code{searchagain}, but always in the forward direction.
|
||
|
|
||
|
@item replace
|
||
|
Interactively replaces text within the current buffer.
|
||
|
|
||
|
@item cut
|
||
|
Cuts and stores the current line (or the marked region).
|
||
|
|
||
|
@item copytext
|
||
|
Copies the current line (or the marked region) without deleting it.
|
||
|
|
||
|
@item uncut
|
||
|
Copies the currently stored text into the current buffer at the
|
||
|
current cursor position.
|
||
|
|
||
|
@item mark
|
||
|
Sets the mark at the current position, to start selecting text.
|
||
|
|
||
|
@item cutwordleft
|
||
|
Cuts from the cursor position to the beginning of the preceding word.
|
||
|
|
||
|
@item cutwordright
|
||
|
Cuts from the cursor position to the beginning of the next word.
|
||
|
|
||
|
@item cutrestoffile
|
||
|
Cuts all text from the cursor position till the end of the buffer.
|
||
|
|
||
|
@item curpos
|
||
|
Shows the current cursor position: the line, column, and character positions.
|
||
|
(The form 'cursorpos' is deprecated.)
|
||
|
|
||
|
@item wordcount
|
||
|
Counts the number of words, lines and characters in the current buffer.
|
||
|
|
||
|
@item speller
|
||
|
Invokes a spell-checking program (or a linting program, if the current
|
||
|
syntax highlighting defines one).
|
||
|
|
||
|
@item justify
|
||
|
Justifies the current paragraph.
|
||
|
|
||
|
@item fulljustify
|
||
|
Justifies the entire current buffer.
|
||
|
|
||
|
@item indent
|
||
|
Indents (shifts to the right) the currently marked text.
|
||
|
|
||
|
@item unindent
|
||
|
Unindents (shifts to the left) the currently marked text.
|
||
|
|
||
|
@item comment
|
||
|
Comments or uncomments the current line or marked lines, using the comment
|
||
|
style specified in the active syntax.
|
||
|
|
||
|
@item complete
|
||
|
Completes the fragment before the cursor to a full word found elsewhere
|
||
|
in the current buffer.
|
||
|
|
||
|
@item left
|
||
|
Goes left one position (in the editor or browser).
|
||
|
|
||
|
@item right
|
||
|
Goes right one position (in the editor or browser).
|
||
|
|
||
|
@item up
|
||
|
Goes one line up (in the editor or browser).
|
||
|
|
||
|
@item down
|
||
|
Goes one line down (in the editor or browser).
|
||
|
|
||
|
@item scrollup
|
||
|
Scrolls up one line of text from the current position.
|
||
|
|
||
|
@item scrolldown
|
||
|
Scrolls down one line of text from the current position.
|
||
|
|
||
|
@item prevword
|
||
|
Moves the cursor to the beginning of the previous word.
|
||
|
|
||
|
@item nextword
|
||
|
Moves the cursor to the beginning of the next word.
|
||
|
|
||
|
@item home
|
||
|
Moves the cursor to the beginning of the current line.
|
||
|
|
||
|
@item end
|
||
|
Moves the cursor to the end of the current line.
|
||
|
|
||
|
@item beginpara
|
||
|
Moves the cursor to the beginning of the current paragraph.
|
||
|
|
||
|
@item endpara
|
||
|
Moves the cursor to the end of the current paragraph.
|
||
|
|
||
|
@item prevblock
|
||
|
Moves the cursor to the beginning of the current or preceding block of text.
|
||
|
(Blocks are separated by one or more blank lines.)
|
||
|
|
||
|
@item nextblock
|
||
|
Moves the cursor to the beginning of the next block of text.
|
||
|
|
||
|
@item prevpage
|
||
|
Goes up one screenful.
|
||
|
|
||
|
@item nextpage
|
||
|
Goes down one screenful.
|
||
|
|
||
|
@item firstline
|
||
|
Goes to the first line of the file.
|
||
|
|
||
|
@item lastline
|
||
|
Goes to the last line of the file.
|
||
|
|
||
|
@item gotoline
|
||
|
Goes to a specific line (and column if specified). Negative numbers count
|
||
|
from the end of the file (and end of the line).
|
||
|
|
||
|
@item gototext
|
||
|
Switches from targeting a line number to searching for text.
|
||
|
|
||
|
@item findbracket
|
||
|
Moves the cursor to the bracket (brace, parenthesis, etc.) that matches
|
||
|
(pairs) with the one under the cursor.
|
||
|
|
||
|
@item prevbuf
|
||
|
Switches to editing/viewing the previous buffer when multiple buffers are open.
|
||
|
|
||
|
@item nextbuf
|
||
|
Switches to editing/viewing the next buffer when multiple buffers are open.
|
||
|
|
||
|
@item verbatim
|
||
|
Inserts the next keystroke verbatim into the file.
|
||
|
|
||
|
@item tab
|
||
|
Inserts a tab at the current cursor location.
|
||
|
|
||
|
@item enter
|
||
|
Inserts a new line below the current one.
|
||
|
|
||
|
@item delete
|
||
|
Deletes the character under the cursor.
|
||
|
|
||
|
@item backspace
|
||
|
Deletes the character before the cursor.
|
||
|
|
||
|
@item undo
|
||
|
Undoes the last performed text action (add text, delete text, etc).
|
||
|
|
||
|
@item redo
|
||
|
Redoes the last undone action (i.e., it undoes an undo).
|
||
|
|
||
|
@item refresh
|
||
|
Refreshes the screen.
|
||
|
|
||
|
@item suspend
|
||
|
Suspends the editor (if the suspending function is enabled, see the
|
||
|
"suspendenable" entry below).
|
||
|
|
||
|
@item casesens
|
||
|
Toggles case sensitivity in searching (search/replace menus only).
|
||
|
|
||
|
@item regexp
|
||
|
Toggles whether searching/replacing is based on literal strings or regular expressions.
|
||
|
(The form 'regex' is deprecated.)
|
||
|
|
||
|
@item backwards
|
||
|
Toggles whether searching/replacing goes forward or backward.
|
||
|
|
||
|
@item prevhistory
|
||
|
Shows the previous history entry in the prompt menus (e.g.@: search).
|
||
|
|
||
|
@item nexthistory
|
||
|
Shows the next history entry in the prompt menus (e.g.@: search).
|
||
|
|
||
|
@item flipreplace
|
||
|
Toggles between searching for something and replacing something.
|
||
|
(The form 'dontreplace' is deprecated.)
|
||
|
|
||
|
@item flipexecute
|
||
|
Toggles between inserting a file and executing a command.
|
||
|
|
||
|
@item flipnewbuffer
|
||
|
Toggles between inserting into the current buffer and into a new
|
||
|
empty buffer.
|
||
|
(The form 'newbuffer' is deprecated.)
|
||
|
|
||
|
@item dosformat
|
||
|
When writing a file, switches to writing a DOS format (CR/LF).
|
||
|
|
||
|
@item macformat
|
||
|
When writing a file, switches to writing a Mac format.
|
||
|
|
||
|
@item append
|
||
|
When writing a file, appends to the end instead of overwriting.
|
||
|
|
||
|
@item prepend
|
||
|
When writing a file, 'prepends' (writes at the beginning) instead of overwriting.
|
||
|
|
||
|
@item backup
|
||
|
When writing a file, creates a backup of the current file.
|
||
|
|
||
|
@item discardbuffer
|
||
|
When about to write a file, discard the current buffer without saving.
|
||
|
(This function is bound by default only when option @option{--tempfile}
|
||
|
is in effect.)
|
||
|
|
||
|
@item tofiles
|
||
|
Starts the file browser, allowing to select a file from a list.
|
||
|
|
||
|
@item gotodir
|
||
|
Goes to a directory to be specified, allowing to browse anywhere
|
||
|
in the filesystem.
|
||
|
|
||
|
@item firstfile
|
||
|
Goes to the first file when using the file browser (reading or writing files).
|
||
|
|
||
|
@item lastfile
|
||
|
Goes to the last file when using the file browser (reading or writing files).
|
||
|
|
||
|
@item nohelp
|
||
|
Toggles the presence of the two-line list of key bindings at the bottom of the screen.
|
||
|
|
||
|
@item constupdate
|
||
|
Toggles the constant display of the current line, column, and character positions.
|
||
|
|
||
|
@item morespace
|
||
|
Toggles the presence of the blank line which 'separates' the titlebar from the file text.
|
||
|
|
||
|
@item smoothscroll
|
||
|
Toggles smooth scrolling (when moving around with the arrow keys).
|
||
|
|
||
|
@item softwrap
|
||
|
Toggles the displaying of overlong lines on multiple screen lines.
|
||
|
|
||
|
@item whitespacedisplay
|
||
|
Toggles the showing of whitespace.
|
||
|
|
||
|
@item nosyntax
|
||
|
Toggles syntax highlighting.
|
||
|
|
||
|
@item smarthome
|
||
|
Toggles the smartness of the Home key.
|
||
|
|
||
|
@item autoindent
|
||
|
Toggles whether new lines will contain the same amount of whitespace as the preceding line.
|
||
|
|
||
|
@item cuttoend
|
||
|
Toggles whether cutting text will cut the whole line or just from the current cursor
|
||
|
position to the end of the line.
|
||
|
|
||
|
@item nowrap
|
||
|
Toggles whether long lines will be hard-wrapped to the next line.
|
||
|
|
||
|
@item tabstospaces
|
||
|
Toggles whether typed tabs will be converted to spaces.
|
||
|
|
||
|
@item backupfile
|
||
|
Toggles whether a backup will be made of the file to be edited.
|
||
|
|
||
|
@item multibuffer
|
||
|
Toggles whether a file is inserted into the current buffer
|
||
|
or read into a new buffer.
|
||
|
|
||
|
@item mouse
|
||
|
Toggles mouse support.
|
||
|
|
||
|
@item noconvert
|
||
|
Toggles automatic conversion of files from DOS/Mac format.
|
||
|
|
||
|
@item suspendenable
|
||
|
Toggles whether the suspend sequence (normally ^Z) will suspend the editor window.
|
||
|
|
||
|
@end table
|
||
|
|
||
|
Valid names for @code{menu} are:
|
||
|
|
||
|
@table @code
|
||
|
|
||
|
@item main
|
||
|
The main editor window where text is entered and edited.
|
||
|
|
||
|
@item search
|
||
|
The search menu (AKA whereis).
|
||
|
|
||
|
@item replace
|
||
|
The 'search to replace' menu.
|
||
|
|
||
|
@item replacewith
|
||
|
The 'replace with' menu, which comes up after 'search to replace'.
|
||
|
(The form 'replace2' is deprecated.)
|
||
|
|
||
|
@item gotoline
|
||
|
The 'goto line (and column)' menu.
|
||
|
|
||
|
@item writeout
|
||
|
The 'write file' menu.
|
||
|
|
||
|
@item insert
|
||
|
The 'insert file' menu.
|
||
|
|
||
|
@item extcmd
|
||
|
The menu for inserting output from an external command, reached from the insert menu.
|
||
|
|
||
|
@item help
|
||
|
The help-viewer menu.
|
||
|
|
||
|
@item spell
|
||
|
The interactive spell checker Yes/no menu.
|
||
|
|
||
|
@item linter
|
||
|
The linter menu.
|
||
|
|
||
|
@item browser
|
||
|
The file browser for inserting or writing a file.
|
||
|
|
||
|
@item whereisfile
|
||
|
The 'search for a file' menu in the file browser.
|
||
|
|
||
|
@item gotodir
|
||
|
The 'go to directory' menu in the file browser.
|
||
|
|
||
|
@item all
|
||
|
A special name that encompasses all menus. For @code{bind} it means
|
||
|
all menus where the specified @code{function} exists; for @code{unbind}
|
||
|
it means all menus where the specified @code{key} exists.
|
||
|
|
||
|
@end table
|
||
|
|
||
|
|
||
|
@node The File Browser
|
||
|
@chapter The File Browser
|
||
|
|
||
|
When reading or writing files, pressing ^T will invoke the file browser.
|
||
|
Here, one can navigate directories in a graphical manner in order to
|
||
|
find the desired file.
|
||
|
|
||
|
Basic movement in the file browser is accomplished with the arrow keys,
|
||
|
page up, and page down. More advanced movement is accomplished by
|
||
|
searching via ^W (or 'w') and changing directories via ^_ (or 'g'). The
|
||
|
behavior of the Enter (or 's') key varies by what is currently selected.
|
||
|
If the currently selected object is a directory, the file browser will
|
||
|
enter and display the contents of the directory. If the object is a
|
||
|
file, this filename and path are copied to the statusbar, and the file
|
||
|
browser exits.
|
||
|
|
||
|
|
||
|
@node Pico Compatibility
|
||
|
@chapter Pico Compatibility
|
||
|
|
||
|
@code{nano} attempts to emulate Pico as closely as possible, but there
|
||
|
are certain differences between the editors:
|
||
|
|
||
|
@table @code
|
||
|
|
||
|
@item Interactive Replace
|
||
|
Instead of allowing you to replace either just one occurrence of a search
|
||
|
string or all of them, @code{nano}'s replace function is interactive: it
|
||
|
will pause at each found search string and query whether to replace this
|
||
|
instance. You can then choose Yes, or No (skip this one), or All (don't
|
||
|
ask any more), or Cancel (stop with replacing).
|
||
|
|
||
|
@item Search and Replace History
|
||
|
When the option @code{-H} or @code{--historylog} is given (or set in
|
||
|
the .nanorc file), text entered as search or replace strings is stored.
|
||
|
These strings can be accessed with the up/down arrow keys. A retrieved
|
||
|
string can subsequently be edited.
|
||
|
|
||
|
@item Writing, Appending, or Prepending Selected Text to Files
|
||
|
Text selected using the marking key (^^) can be written out, appended,
|
||
|
or prepended to a new or existing file using the WriteOut key (^O).
|
||
|
|
||
|
@item Toggles
|
||
|
Many options which alter the functionality of the program can be
|
||
|
"toggled" on or off using Meta key sequences, meaning the program does
|
||
|
not have to be restarted to turn a particular feature on or off.
|
||
|
See the internal help function (^G) for a list of features that
|
||
|
can be toggled. Or see @xref{Feature Toggles} instead.
|
||
|
|
||
|
@item Current Cursor Position
|
||
|
The output of the "Display Cursor Position" command (^C) displays
|
||
|
not only the current line and character position of the cursor,
|
||
|
but also (between the two) the current column position.
|
||
|
|
||
|
@item Spell Checking
|
||
|
In the internal spell checker misspelled words are sorted alphabetically
|
||
|
and trimmed for uniqueness, such that the words 'apple' and 'Apple' will
|
||
|
be prompted for correction separately.
|
||
|
|
||
|
@end table
|
||
|
|
||
|
|
||
|
@node Building and Configure Options
|
||
|
@chapter Building and Configure Options
|
||
|
|
||
|
Building @code{nano} from source is fairly straightforward if you are
|
||
|
familiar with compiling programs with autoconf support:
|
||
|
|
||
|
@itemize @bullet
|
||
|
@item tar xvfz nano-x.y.z.tar.gz (where x.y.z is the version of
|
||
|
@code{nano})
|
||
|
@item cd nano-x.y.z/
|
||
|
@item ./configure
|
||
|
@item make
|
||
|
@item make install
|
||
|
@end itemize
|
||
|
|
||
|
The possible options to @code{./configure} are:
|
||
|
|
||
|
@table @code
|
||
|
|
||
|
@item --disable-browser
|
||
|
Disable the mini file browser when reading or writing files.
|
||
|
|
||
|
@item --disable-color
|
||
|
Disable support for the syntax coloring of files. This also eliminates
|
||
|
the @code{-Y} command-line option, which chooses a specific syntax.
|
||
|
|
||
|
@item --disable-extra
|
||
|
Disable extra features. At the moment, this is just easter-egg-type
|
||
|
stuff.
|
||
|
|
||
|
@item --disable-help
|
||
|
Disable the help function. Doing this makes the binary much smaller,
|
||
|
but makes it difficult for new users to learn more than very basic
|
||
|
things about using the editor.
|
||
|
|
||
|
@item --disable-histories
|
||
|
Disable the code for the handling of the history files: the search and
|
||
|
replace strings that were used, and the cursor position at which each
|
||
|
file was closed. This also eliminates the @code{-H} and @code{-P}
|
||
|
command-line options, which switch on the logging of search/replace
|
||
|
strings and cursor positions.
|
||
|
|
||
|
@item --disable-justify
|
||
|
Disable the justify and unjustify functions.
|
||
|
|
||
|
@item --disable-libmagic
|
||
|
Disable the use of the library of magic-number tests (for determining
|
||
|
the file type and thus which syntax to use for colouring --- often the
|
||
|
tests on filename extension and header line will be enough).
|
||
|
|
||
|
@item --disable-mouse
|
||
|
Disable all mouse functionality. This also eliminates the @code{-m}
|
||
|
command-line option, which enables the mouse functionality.
|
||
|
|
||
|
@item --disable-multibuffer
|
||
|
Disable support for opening multiple files at a time and switching
|
||
|
between them on the fly. This also eliminates the @code{-F} command-line
|
||
|
option, which causes a file to be read into a separate buffer by default.
|
||
|
|
||
|
@item --disable-nanorc
|
||
|
Disable support for reading the nanorc files at startup. With such
|
||
|
support, you can store custom settings in a system-wide and a per-user
|
||
|
nanorc file rather than having to pass command-line options to get
|
||
|
the desired behavior. See @xref{Nanorc Files}, for more info.
|
||
|
Disabling this also eliminates the @code{-I} and @code{-q} command-line
|
||
|
options; the first inhibits the reading of nanorcfiles, and the second
|
||
|
suppresses warnings about errors in those files.
|
||
|
|
||
|
@item --disable-operatingdir
|
||
|
Disable setting the operating directory. This also eliminates the @code{-o}
|
||
|
command-line option, which sets the operating directory.
|
||
|
|
||
|
@item --disable-speller
|
||
|
Disable use of the spell checker. This also eliminates the @code{-s}
|
||
|
command-line option, which allows specifying an alternate spell checker.
|
||
|
|
||
|
@item --disable-tabcomp
|
||
|
Disable tab completion (when nano asks for a filename or a search string).
|
||
|
|
||
|
@item --disable-wordcomp
|
||
|
Disable word completion.
|
||
|
|
||
|
@item --disable-wrapping
|
||
|
Disable all hard-wrapping of overlong lines. This also eliminates the
|
||
|
@code{-w} command-line option, which switches long-line wrapping off.
|
||
|
|
||
|
@item --enable-tiny
|
||
|
This option implies all of the above. It also disables some other
|
||
|
internals of the editor, like the marking code, the cut-to-end-of-line
|
||
|
code, and the function toggles. By using the enabling
|
||
|
counterpart of the above options together with @code{--enable-tiny},
|
||
|
specific features can be switched back on --- but a few cannot.
|
||
|
|
||
|
@item --enable-debug
|
||
|
Enable support for runtime debug output. This can get pretty messy, so
|
||
|
chances are you only want this feature when you're working on the nano source.
|
||
|
|
||
|
@item --disable-nls
|
||
|
Disables Native Language support. This will disable the use of any
|
||
|
available GNU @code{nano} translations.
|
||
|
|
||
|
@item --disable-wrapping-as-root
|
||
|
Disable hard-wrapping of overlong lines by default when @code{nano}
|
||
|
is run as root.
|
||
|
|
||
|
@item --enable-utf8
|
||
|
Enable support for reading and writing Unicode files. This will require
|
||
|
either a wide version of curses, or a UTF-8-enabled version of Slang.
|
||
|
|
||
|
@item --disable-utf8
|
||
|
Disable support for reading and writing Unicode files. Normally the
|
||
|
configure script auto-detects whether to enable UTF-8 support or not.
|
||
|
You can use this or the previous option to override that detection.
|
||
|
|
||
|
@item --enable-altrcname=@var{name}
|
||
|
Use the file with the given @var{name} (in the user's home directory)
|
||
|
as nano's settings file, instead of the default @code{.nanorc}.
|
||
|
|
||
|
@item --with-slang
|
||
|
Compile @code{nano} against Slang instead of against ncurses or other
|
||
|
curses libraries.
|
||
|
|
||
|
@end table
|
||
|
|
||
|
@contents
|
||
|
@bye
|