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

FreeBSD Manual Pages

  
 
  

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]...

NOTICE
       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  key-
       strokes to do what they did before version 8.0, add the following 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, syntax coloring, line	numbering, and soft-wrapping  overlong
       lines.

       When  giving a filename on the command line, the	cursor can be put on a
       specific	line by	adding the line	number with a plus sign	(+) before the
       filename, 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 expression 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 move-
       ment 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
       highlighted),  and then use ^K to cut it, or M-6	to copy	it to the cut-
       buffer.	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  in-
       creases	the stride.  Any cursor	movement without Shift being held can-
       cels such a selection.

       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 cursor 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	directory.

       -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 converted.)

       -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
	      executed	commands,  so  they can	be easily reused in later ses-
	      sions.

       -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.)	 Using 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 cur-
	      sor, 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 in-
	      stead 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
	      number must be greater than 0.  The default value	is 8.

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

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

       -W, --wordbounds
	      Detect word boundaries differently by treating punctuation char-
	      acters 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
	      option, 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
	      (instead of a single character, and without affecting  the  cut-
	      buffer).

       -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	 over-
	      long,  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 read-
	      ing both the system-wide and the user's nanorc files.

       -g, --showcursor
	      Make the cursor visible in the file browser (putting it  on  the
	      highlighted  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 previous 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
	      cursor  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 en-
	      abled, 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 Window 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  without  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,  in-
	      stead  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
	      default  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, un-
	      less --restricted	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 be-
	      ginnings.

       -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
	      using libmagic to	determine the applicable syntax.

       -@, --colonparsing
	      When  a  filename	given on the command line ends in a colon plus
	      digits and this filename does not	exist,	then  snip  the	 colon
	      plus  digits and understand the digits as	a line number.	If the
	      trimmed filename does not	exist either, then repeat the  process
	      and  understand the obtained two numbers as line and column num-
	      ber.  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
	      current 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 character	under the cursor (in  Unicode  format:
	      U+xxxx), the same	flags as are shown by --stateflags, and	a per-
	      centage  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  charac-
	      ter code are displayed only when --constantshow is used, and can
	      be  toggled  on and off with M-C.	 The state flags are displayed
	      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 keystroke.	With M-Z the title bar plus status bar
	      can be toggled.  With M-X	the help lines.

       -/, --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.  Fur-
	      thermore,	^A sets	the mark, ^R makes replacements,  ^D  searches
	      previous,	 ^P  shows  the	position, ^T goes to a line, ^W	writes
	      out a file, and ^E executes a command.  Note that	this 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  ex-
       ists),  and  then the user's nanorc (if it exists), either ~/.nanorc or
       $XDG_CONFIG_HOME/nano/nanorc or ~/.config/nano/nanorc, whichever	is en-
       countered 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-
       coloring	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 order 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	situa-
       tion, 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, define the environment variable NANO_NOCATCH.

HOMEPAGE
       https://nano-editor.org/

SEE ALSO
       nanorc(5)

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

February 2026			 version 8.7.1			       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+Ports+15.1.quarterly>

home | help