Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
NANO(1) 		     General Commands Manual			 NANO(1)

NAME
     nano - Nano's ANOther text editor, inspired by Pico

SYNOPSIS
     nano [options] [[+line[,column]] file]...

     nano [options] [[+[crCR]{/|?}string] file]...

NOTICES
     Since  version  9.0, all lines are scrolled horizontally together (when the
     cursor approaches	the  edge),  by  just  the  amount  needed,  instead  of
     scrolling only the current line by a large step.  If you prefer the old be-
     havior,  you  can	use  --solo on the command line or set solosidescroll in
     your nanorc.

     Also since version 9.0, keystrokes M-< and M-> have been reassigned to  the
     `scrollleft`  and `scrollright` functions.  If you want those keystrokes to
     do what they did before version 9.0, add these two lines at the end of your
     nanorc file:

	 bind M-< prevbuf main
	 bind M-> nextbuf main

     Since version 8.0, to be newcomer friendly, ^F starts a forward search,  ^B
     starts a backward search, M-F searches the next occurrence forward, and M-B
     searches  the next occurrence backward.  If you want those keystrokes to do
     what they did before version 8.0, add the following four lines at	the  end
     of your nanorc file:

	 bind ^F forward main
	 bind ^B back main
	 bind M-F formatter main
	 bind M-B linter main

DESCRIPTION
     nano  is  a small and friendly text editor.  It copies the look and feel of
     Pico, but is free software,  and  implements  several  features  that  Pico
     lacks, such as: opening multiple files, scrolling per line, undo/redo, syn-
     tax coloring, line numbering, and soft-wrapping overlong lines.

     When giving a filename on the command line, the cursor can be put on a spe-
     cific  line by adding the line number with a plus sign (+) before the file-
     name, and even in a specific column by adding it with  a  comma.	Negative
     numbers count from the end of the file or line.

     The  cursor can be put on the first or last occurrence of a specific string
     by specifying that string after +/ or +? before the filename.   The  string
     can be made case sensitive and/or caused to be interpreted as a regular ex-
     pression  by inserting c and/or r after the + sign.  These search modes can
     be explicitly disabled by using the uppercase variant of those  letters:  C
     and/or  R.   When	the  string  contains spaces, it needs to be enclosed in
     quotes.  To give an example: to open a file at the first occurrence of  the
     word "Foo", you would do:

	 nano +c/Foo file

     As  a special case: if instead of a filename a dash (-) is given, nano will
     read data from standard input.

EDITING
     Entering text and moving around in a file is  straightforward:  typing  the
     letters and using the normal cursor movement keys.  Commands are entered by
     using the Control (^) and the Alt or Meta (M-) keys.  Typing ^K deletes the
     current line and puts it in the cutbuffer.  Consecutive ^Ks put all deleted
     lines  together  in  the  cutbuffer.   Any cursor movement or executing any
     other command causes the next ^K to overwrite the cutbuffer.  A  ^U  pastes
     the current contents of the cutbuffer at the current cursor position.

     When  a  more precise piece of text needs to be cut or copied, you can mark
     its start with ^6, move the cursor to its end (the  marked  text  is  high-
     lighted),	and  then  use ^K to cut it, or M-6 to copy it to the cutbuffer.
     You can also save the marked text to a file with ^O, or spell check it with
     ^T^T.

     On some terminals, text can be selected also by holding  down  Shift  while
     using  the  arrow keys.  Holding down the Ctrl or Alt key too increases the
     stride.  Any cursor movement without Shift being held cancels such a selec-
     tion.

     Any valid Unicode code point can be inserted into the buffer by typing  M-V
     followed  by  the	hexadecimal  digits  of  the  code point (concluded with
     <Space> or <Enter> when it are fewer than six digits).  A	literal  control
     code  (except  ^J)  can be inserted by typing M-V followed by the pertinent
     keystroke.

     The two lines at the bottom of the screen show some important commands; the
     built-in help (^G) lists all the available ones.  The default key	bindings
     can be changed via a nanorc file -- see nanorc(5).

OPTIONS
     -A, --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
	    jumps to that beginning (either forwards or backwards).  If the cur-
	    sor is already at that position, it jumps to the true  beginning  of
	    the line.

     -B, --backup
	    When  saving  a  file, back up the previous version of it, using the
	    current filename suffixed with a tilde (~).

     -C directory, --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
	    (-B).   The  uniquely numbered files are stored in the specified di-
	    rectory.

     -D, --boldtext
	    For the interface, use bold instead of reverse video.  This  can  be
	    overridden	for specific elements by setting the options titlecolor,
	    statuscolor, promptcolor, minicolor, keycolor,  numbercolor,  and/or
	    selectedcolor in your nanorc file.	See nanorc(5).

     -E, --tabstospaces
	    Convert  each  typed tab to spaces -- to the number of spaces that a
	    tab at that position would take up.  (Note: pasted tabs are not con-
	    verted.)

     -F, --multibuffer
	    Read a file into a new buffer by default.

     -G, --locking
	    Use vim-style file locking when editing files.

     -H, --historylog
	    Save the last hundred search strings and replacement strings and ex-
	    ecuted commands, so they can be easily reused in later sessions.

     -I, --ignorercfiles
	    Don't look at the system's nanorc nor at the user's nanorc.

     -J number, --guidestripe=number
	    Draw a vertical stripe at the given column, to help judge the  width
	    of	the  text.   (The  color  of  the stripe can be changed with set
	    stripecolor in your nanorc file.)

     -K, --rawsequences
	    Interpret escape sequences directly, instead of  asking  ncurses  to
	    translate  them.   (If you need this option to get some keys to work
	    properly, it means that the terminfo terminal  description	that  is
	    used  does	not  fully  match  the actual behavior of your terminal.
	    This can happen when you ssh into a BSD machine, for example.)   Us-
	    ing this option disables nano's mouse support.

     -L, --nonewlines
	    Don't automatically add a newline when a text does not end with one.
	    (This can cause you to save non-POSIX text files.)

     -M, --trimblanks
	    Snip  trailing whitespace from the wrapped line when automatic hard-
	    wrapping occurs or when text is justified.

     -N, --noconvert
	    Disable automatic conversion of files from DOS/Mac format.

     -O, --bookstyle
	    When justifying, treat any line that starts with whitespace  as  the
	    beginning of a paragraph (unless auto-indenting is on).

     -P, --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.
	    Also save and restore the positions of any anchors.

     -Q "regex", --quotestr="regex"
	    Set  the regular expression for matching the quoting part of a line.
	    The default value is  "^([ \t]*([!#%:;>|}]|//))+".	 (Note	that  \t
	    stands  for  an  actual  Tab.)   This makes it possible to rejustify
	    blocks of quoted text when composing email, and to rewrap blocks  of
	    line comments when writing source code.

     -R, --restricted
	    Restricted	mode:  don't  read or write to any file not specified on
	    the command line.  This means: don't read or  write  history  files;
	    don't  allow  suspending;  don't allow 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 make backup files.  Restricted
	    mode  can also be activated by invoking nano with any name beginning
	    with 'r' (e.g. "rnano").

     -S, --softwrap
	    Display over multiple screen rows lines  that  exceed  the	screen's
	    width.  (You can make this soft-wrapping occur at whitespace instead
	    of rudely at the screen's edge, by using also --atblanks.)

     -T number, --tabsize=number
	    Set  the size (width) of a tab to number columns.  The value of num-
	    ber must be greater than 0.  The default value is 8.

     -U, --quickblank
	    Make status-bar messages disappear after 1 keystroke instead of  af-
	    ter  20.  Note that option -c (--constantshow) overrides this.  When
	    option --minibar or --zero is in effect, --quickblank makes  a  mes-
	    sage  disappear  after  0.8 seconds instead of after the default 1.5
	    seconds.

     -V, --version
	    Show the current version number and exit.

     -W, --wordbounds
	    Detect word boundaries differently by treating  punctuation  charac-
	    ters as part of a word.

     -X "characters", --wordchars="characters"
	    Specify  which  other  characters  (besides  the normal alphanumeric
	    ones) should be considered as part of a word.  When using  this  op-
	    tion, you probably want to omit -W (--wordbounds).

     -Y name, --syntax=name
	    Specify  the  name	of the syntax highlighting to use from among the
	    ones defined in the nanorc files.

     -Z, --zap
	    Let an unmodified Backspace or Delete erase the marked  region  (in-
	    stead of a single character, and without affecting the cutbuffer).

     -a, --atblanks
	    When  doing  soft line wrapping, wrap lines at whitespace instead of
	    always at the edge of the screen.

     -b, --breaklonglines
	    Automatically hard-wrap the current line when it  becomes  overlong,
	    that  is:  when  it  becomes  wider  than  the  value  given with -r
	    (--fill).  The default value for -r is the	terminal's  width  minus
	    eight.   (This  option  is the opposite of -w (--nowrap) -- the last
	    one given takes effect.)

     -c, --constantshow
	    Constantly report the cursor position on the status bar.  Note  that
	    this overrides option -U (--quickblank).

     -d, --rebinddelete
	    Interpret  the  Delete  and  Backspace keys differently so that both
	    Backspace and Delete work properly.  You should only use this option
	    when on your system either Backspace acts like Delete or Delete acts
	    like Backspace.

     -e, --emptyline
	    Do not use the line below the title bar, leaving it entirely blank.

     -f file, --rcfile=file
	    Read only this file for setting nano's options, instead  of  reading
	    both the system-wide and the user's nanorc files.

     -g, --showcursor
	    Make the cursor visible in the file browser (putting it on the high-
	    lighted  item) and in the help viewer.  Useful for braille users and
	    people with poor vision.

     -h, --help
	    Show a summary of the available command-line options and exit.

     -i, --autoindent
	    Automatically indent a newly created line to the same number of tabs
	    and/or spaces as the previous line (or as the next line if the  pre-
	    vious line is the beginning of a paragraph).

     -j, --jumpyscrolling
	    Scroll the buffer contents per half-screen instead of per line.

     -k, --cutfromcursor
	    Make  the 'Cut Text' command (normally ^K) cut from the current cur-
	    sor position to the end of the line, instead of cutting  the  entire
	    line.

     -l, --linenumbers
	    Display  line  numbers to the left of the text area.  (Any line with
	    an anchor additionally gets a mark in the margin.)

     -m, --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 works in the X Win-
	    dow System, and on the console when gpm is running.  Text can  still
	    be selected through dragging by holding down the Shift key.

     -n, --noread
	    Treat any name given on the command line as a new file.  This allows
	    nano  to  write  to  named pipes: it starts with a blank buffer, and
	    writes to the pipe when the user saves the "file".	 This  way  nano
	    can  be used as an editor in combination with for instance gpg with-
	    out having to write sensitive data to disk first.

     -o directory, --operatingdir=directory
	    Change to the given directory, and allow reading and  writing  files
	    only in this directory and its subdirectories.

     -p, --preserve
	    Preserve  the  XOFF  and  XON sequences (^S and ^Q) so that they are
	    caught by the terminal (stopping and  resuming  the  output).   Note
	    that option -/ (--modernbindings) overrides this.

     -q, --indicator
	    Display  a "scrollbar" on the righthand side of the edit window.  It
	    shows the position of the viewport in the buffer and how much of the
	    buffer is covered by the viewport.

     -r number, --fill=number
	    Set the target width for justifying and automatic  hard-wrapping  at
	    this  number of columns.  If the value is 0 or less, wrapping occurs
	    at the width of the screen minus number columns, allowing  the  wrap
	    point  to  vary  along with the width of the screen if the screen is
	    resized.  The default value is -8.

     -s "program [argument ...]", --speller="program [argument ...]"
	    Use this command to perform spell checking and  correcting,  instead
	    of using the built-in corrector that calls hunspell(1) or spell(1).

     -t, --saveonexit
	    Save a changed buffer without prompting (when exiting with ^X).

     -u, --unix
	    Save  a  file  by default in Unix format.  This overrides nano's de-
	    fault behavior of saving a file in the format that	it  had.   (This
	    option has no effect when you also use --noconvert.)

     -v, --view
	    Just  view the file and disallow editing: read-only mode.  This mode
	    allows the user to open also other files for viewing,  unless  --re-
	    stricted is given too.

     -w, --nowrap
	    Do	not  automatically  hard-wrap  the  current line when it becomes
	    overlong.  This is the default.  (This option is the opposite of  -b
	    (--breaklonglines) -- the last one given takes effect.)

     -x, --nohelp
	    Don't show the two help lines at the bottom of the screen.

     -y, --afterends
	    Make  Ctrl+Right and Ctrl+Delete stop at word ends instead of begin-
	    nings.

     -z, --listsyntaxes
	    List the names of the available syntaxes and exit.

     -!, --magic
	    When neither the file's name nor its first line give a clue, try us-
	    ing libmagic to determine the applicable syntax.

     -@, --colonparsing
	    When a filename given on the command line ends in a colon plus  dig-
	    its  and this filename does not exist, then snip the colon plus dig-
	    its and understand the digits as a	line  number.	If  the  trimmed
	    filename  does  not exist either, then repeat the process and under-
	    stand the obtained two numbers as line and column  number.	 But  if
	    the  doubly  trimmed filename does not exist either, then forget the
	    trimming and accept the original filename as is.   To  disable  this
	    colon  parsing  for some file, use +1 or similar before the relevant
	    filename.

     -%, --stateflags
	    Use the top-right corner of the screen for showing some state flags:
	    I when auto-indenting, M when the mark is on, L  when  hard-wrapping
	    (breaking  long  lines),  R when recording a macro, and S when soft-
	    wrapping.  When the buffer is modified, a star (*)	is  shown  after
	    the filename in the center of the title bar.

     -_, --minibar
	    Suppress  the  title bar and instead show information about the cur-
	    rent buffer at the bottom of the screen, in the space for the status
	    bar.  In this "mini bar" the filename is shown on the left, followed
	    by an asterisk if the buffer has been modified.  On  the  right  are
	    displayed  the current line and column number, the code of the char-
	    acter under the cursor (in Unicode format: U+xxxx), the  same  flags
	    as	are  shown  by --stateflags, and a percentage that expresses how
	    far the cursor is into the file (linewise).  When a file  is  loaded
	    or	saved,	and  also  when switching between buffers, the number of
	    lines in the buffer is displayed after the filename.  This number is
	    cleared upon the next keystroke, or replaced with an  [i/n]  counter
	    when  multiple  buffers  are open.	The line plus column numbers and
	    the character code are displayed only when --constantshow  is  used,
	    and  can  be  toggled on and off with M-C.	The state flags are dis-
	    played only when --stateflags is used.

     -0, --zero
	    Hide all elements of the interface (title bar, status bar, and  help
	    lines)  and use all rows of the terminal for showing the contents of
	    the buffer.  The status bar appears only when there is a significant
	    message, and disappears after 1.5 seconds  or  upon  the  next  key-
	    stroke.   With  M-Z  the  title  bar plus status bar can be toggled.
	    With M-X the help lines.

     -1, --solosidescroll
	    When the cursor approaches the right edge of the edit window, scroll
	    only the current  line  sideways  by  a  large  amount,  instead  of
	    scrolling  all  visible  lines sideways by just the amount needed to
	    keep the cursor in view.  This latter whole-window	smooth	sideways
	    scrolling  is the new default behavior.  The single-line jerky side-
	    ways scrolling enabled by this option was the old  behavior  --  the
	    only behavior that nano knew.

     -/, --modernbindings
	    Use  key bindings similar to the ones that most modern programs use:
	    ^X cuts, ^C copies, ^V pastes, ^Z undoes,  ^Y  redoes,  ^F	searches
	    forward,  ^G searches next, ^S saves, ^O opens a file, ^Q quits, and
	    (when the terminal permits) ^H shows help.	Furthermore, ^A sets the
	    mark, ^B searches backward, ^D searches previous, ^R makes	replace-
	    ments,  ^P	shows  the  position, ^T goes to a line, ^W writes out a
	    file, and ^E executes a command.  Note that  this  option  overrides
	    option -p (--preserve).

TOGGLES
     Several  of the above options can be switched on and off also while nano is
     running.  For example, M-L toggles the hard-wrapping  of  long  lines,  M-S
     toggles soft-wrapping, M-N toggles line numbers, M-M toggles the mouse, M-I
     auto-indentation,	and  M-X  the help lines.  See at the end of the ^G help
     text for a complete list.

     The M-X toggle is special: it works in all menus except the help viewer and
     the linter.  All other toggles work in the main menu only.

FILES
     When --rcfile is given, nano reads just the specified file for setting  its
     options and syntaxes and key bindings.  Without that option, nano reads two
     configuration files: first the system's nanorc (if it exists), and then the
     user's   nanorc   (if   it   exists),   either   ~/.nanorc   or   $XDG_CON-
     FIG_HOME/nano/nanorc or  ~/.config/nano/nanorc,  whichever  is  encountered
     first.   See  nanorc(5)  for  more  information on the possible contents of
     those files.

     See /usr/share/nano/ and /usr/share/nano/extra/ for available syntax-color-
     ing definitions.

EXIT STATUS
     0	    The editor finished normally.

     1	    An invalid option or option argument was given.

     2	    The last open buffer was discarded (with ^O^Q or ^X^Q).

NOTES
     Suspension is enabled by default, reachable via ^T^Z.  (If you want a plain
     ^Z to suspend nano, add bind ^Z suspend main to your nanorc.)

     At a Yes-No prompt, ^Y can be used for "Yes",  ^N	for  "No",  and  ^A  for
     "All".   (And  when  exiting, ^Q can be used for "Quit with error".)  These
     unlisted bindings work in any locale.

     When you want to copy marked text from nano to the system's clipboard,  see
     one of the examples in the nanorc(5) man page.

     If  no  alternative  spell checker command is specified on the command line
     nor in one of the nanorc files, nano checks the SPELL environment	variable
     for one.

     In  some  cases nano tries to dump the buffer into an emergency file.  This
     happens mainly if nano receives a SIGHUP or SIGTERM or runs out of  memory.
     It  writes the buffer into a file named nano.save if the buffer didn't have
     a name already, or adds a ".save" suffix to the current  filename.   If  an
     emergency	file  with that name already exists in the current directory, it
     adds ".save" plus a number (e.g. ".save.1") to the current filename in  or-
     der  to  make it unique.  In multibuffer mode, nano writes all open buffers
     to their respective emergency files.

     If you have any question about how to use nano in some specific  situation,
     you can ask on help-nano@gnu.org.

BUGS
     The  recording  and  playback  of keyboard macros works correctly only on a
     terminal emulator, not on a Linux console (VT), because the latter does not
     by default distinguish modified from unmodified arrow keys.

     Please report any other bugs that you encounter via:
     https://savannah.gnu.org/bugs/?group=nano.

     When nano crashes, it saves any modified buffers to emergency .save  files.
     If you are able to reproduce the crash and you want to get a backtrace, de-
     fine the environment variable NANO_NOCATCH.

HOMEPAGE
     https://nano-editor.org/

SEE ALSO
     nanorc(5)

     /usr/share/doc/nano/ (or equivalent on your system)

April 2026			   version 9.0				 NANO(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nano&sektion=1&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help