Improvements in GNU nano
========================

Since 4.0:
  - Pasting from outside into nano suppresses auto-indentation.
  - Such an external paste can be undone with a single M-U.
  - Shift+Meta+letter key combos can be bound with 'bind Sh-M-letter ...'.
  - A custom nanorc file may be specified with -f / --rcfile.
  - What the <Tab> key produces can be specified per syntax with 'tabgives'.
  - The ability to perform a search at startup with +/string or +?string.
  - Comment characters are copied when automatic hard-wrapping occurs.
  - The ability to both read from and write to a FIFO.
  - Automatic hard-wrapping is no longer the default.
  - Addition of --guidestripe to draw a helpful vertical bar.
  - Meta-Up and Meta-Down scroll the screen linewise.
  - Continuation is shown with a highlighted ">" instead of a plain "$".
  - A marked region gets justified into a single, separate paragraph.
  - Any number of justifications can be undone.

Since 3.0:
  - Addition of --zap to make <Del> and <Bsp> obliterate marked text.
  - <Ctrl+Delete> wipes next word and <Shift+Ctrl+Delete> preceding word.
  - An external spell check can be undone.

Since 2.9.0:
  - The ability to filter text through an external command.
  - Better detection of paragraphs, allowing a less indented beginning.
  - Option 'set afterends' for making Ctrl+Right stop at word ends.
  - A crash handler that saves changed buffers in case of a crash.
  - Addition of the color name "normal", meaning the default color.
  - A key can be bound to a string -- any mix of text and commands.
  - Error messages are shown by default in bright white on red.
  - <Tab> and <Shift+Tab> can be used to indent/unindent a marked region.
  - Can snip trailing whitespace while typing, with 'set trimblanks'.
  - The ability to record and replay a series of keystrokes (a macro).
  - Assigned functions to ^S (save file) and ^Q (start backward search).
  - Indenting and unindenting have been integrated into the undo system.
  - Support for $XDG_CONFIG_HOME for the nanorc file, and $XDG_DATA_HOME
    for the history files (of search strings and cursor positions).

Since 2.8.0:
  - ^U pastes the first line of the cutbuffer at a prompt.
  - Softwrapping can be done at whitespace (with --soft --atblanks).
  - The ^G help texts have become searchable (with ^W and M-W).
  - Ctrl+Home and Ctrl+End jump to start and end of file.
  - In softwrap mode the cursor now moves per visual row instead of
    per logical line, and the screen will scroll per row.

Since 2.7.0:
  - The keystroke ^] to complete a fragment to an existing full word.
  - The ability to display line numbers in front of the text (M-#).

Since 2.6.0:
  - Shift plus the cursor keys can be used for selecting text.
  - Ctrl+Arrow should now work also on a Linux virtual console.
  - Ctrl+Up and Ctrl+Down jump to previous or next block of text.
  - Feedback during Unicode Input (M-V followed by six digits).
  - The option 'wordchars' for specifying extra word characters.
  - Hi-bit control characters are shown in a more readable manner.
  - The ability to use negative numbers at the Go To Line prompt.
  - The ability to comment/uncomment lines with a single keystroke (M-3).
  - The ability to refresh the file list in the browser (^L).
  - The ability to abort re-searches (^C after an M-W).
  - Better feedback at startup when opening large or multiple files.

Since 2.5.0:
  - The option 'justifytrim' for snipping whitespace from justified lines.
  - The ability to discard a buffer (^O ^Q) when --tempfile is used.
  - On most terminals Ctrl+Left / Ctrl+Right now work for PrevWord/NextWord.
  - When in the middle of a word, PrevWord now jumps to the start of this
    word (like Pico does) instead of to the start of the preceding word.
  - The ability to delete whole words with 'cutwordleft' and 'cutwordright'.
  - The ability to save a file without prompting for its name ('savefile').
  - The ability to search backward without having to toggle the direction.

Since 2.4.0:
  - Replacing things in a marked region now takes place in situ, in context,
    instead of changing the view to only the marked text.
  - Invalid byte sequences are properly displayed and not mistakenly found.
  - Resizing the window does not exit from help viewer nor file browser.

Since 2.3.0:
  - System syntaxes can be improved upon with the 'extendsyntax' command.
  - Whitespace display (M-P) does not require configuration to be useful.
  - Undo/redo is enabled by default (M-U/M-E) and works nearly everywhere
    -- just not yet for justifying and indenting/unindenting.
  - The ability to color the title bar, the status bar and the help lines.
  - The ability to run a linter or formatter (^T) on the current buffer.
  - The ability to only write to named pipes with --noread.
  - Determination of the applicable syntax through libmagic -- when the
    file extension nor the first line give an answer.
  - The option 'positionlog' for saving/restoring the cursor position.
  - The ability to read and write vim-style lock files.

Visible changes since 2.0
-------------------------
* Editor Features
  - The ability to rebind (reassign) keys using the nanorc.
  - The ability to read standard input like a pager ("nano -").
  - Color syntax highlighting can be set by the first line of a file.
  - The ability to silence nanorc error messages (-q).
  - Undo/redo operations (-u).
  - Soft wrapping of text (-$).

* File Handling
  - Better handling of backup files: if nano can't write a backup file,
    it won't try to write the original file afterward.
  - Emergency savefiles retain ownerships and permissions when possible.
  - Performance improvements in color syntax highlighting.

Visible changes since 1.2
-------------------------
* Editor Features
  - Support for UTF-8.
  - Moving to a specified line and column of a file, instead of just a
    line (+LINE,COLUMN).
  - Smart home key (-A).
  - Creation of unique backup files in a specified directory (-C <dir>).
  - Insertion of spaces instead of a tab when Tab is pressed (-E).
  - The long option for -K is now --rebindkeypad.
  - Regular expression searching can now be toggled when nano is built
    with --enable-tiny, so -R now means something else (see below).
  - Restricted mode that provides more security than -o (-R).
  - Blanking of the statusbar after 1 keystroke instead of 25 (-U).
  - Word searches can optionally skip over punctuation (-W).
  - Workaround for Delete's acting like Backspace (-d).
  - Many more options are supported in the nanorc.
  - Improvements to color syntax highlighting support: case insensitive
    matching, the ability to include color syntaxes in separate files,
    the ability to specify background colors without foreground colors,
    etc.
  - Insertion of single-byte characters via Esc Esc <000-255>.
  - Insertion of all characters via "Verbatim Input" mode.
  - Workaround for the "NumLock glitch".
  - Meta-W now repeats the last search.  Wrapping is now toggled via
    Meta-L.
  - Replacing and spell checking only selected text.
  - Indenting lines with one keystroke.
  - Copying text into the cutbuffer without cutting it.
  - Scrolling the text up and down single lines without moving the
    cursor.
  - PageUp and PageDown work more smoothly when using -S.
  - Scrolling the help text up and down single lines.
  - Cutting all text from the current position to the end of the file
    with one keystroke.
  - Justifying the entire file with one keystroke.
  - Justifying without removing spaces from the ends of lines.
  - Unjustifying after justifying and immediately resizing.
  - Going to the first or last line of the current paragraph.
  - Going to the first or last line of the file without having to go to
    the "Search" prompt.
  - Searching for filenames in the file browser.
  - Displaying spaces and tabs differently to make it easier to tell
    them apart.
  - Many more functions available at the statusbar prompt: moving to the
    next or previous word, searching for matching brackets, "Verbatim
    Input" mode, etc.
  - The glibc 2.2.3 crashes involving extended regular expressions are
    no longer worked around, as they can break anything using extended
    regular expressions, and glibc 2.2.3 is old.  You should upgrade to
    at least glibc 2.2.4.

* File Handling
  - Automatic adding of newlines to the ends of files without them can
    now be disabled (-L).
  - Converting from and to DOS/Mac file format is now toggled only at
    the "Write File" prompt, via Meta-D and Meta-M, and the default file
    format to save in is now set depending on what format the file was
    originally in.  -D now makes nano use bold text instead of reverse
    video text, and Meta-D at the edit window now does a
    word/line/character count.  -O now makes the unused second line of
    the screen part of the edit window, and Meta-O at the edit window
    now toggles this behavior.
  - Converting files that contain a mix of DOS and Mac format lines.
  - Automatic switching on of -N with binary files has been removed, as
    it causes problems with UTF-8 support.

Visible changes since 1.0
-------------------------
* Editor Features
  - Complete Pico compatibility (--pico has been removed, and -p means
    something else, see below).
  - nanorc support (see nanorc.sample included in sources).
  - Smooth scrolling (-S).
  - Support for searching for matching braces, brackets, etc.
  - Help for all editor features.
  - Color syntax highlighting support.
  - Quote string support, useful for mail agents, etc. (-Q).
  - Insertion of output of external commands.
  - Optional enabling of XON and XOFF control characters (-p).
  - Tons of bugfixes/enhancements for already existing features.

* File Handling
  - Overwriting and appending or prepending to files.
  - Writing marked text to separate files.
  - Multiple file buffers (-F).
  - Converting from and to DOS/Mac file format (-D/-M, -N to disable).
  - Better control character handling.
  - Creation of backup files (-B).
  - Search/replace history (-H).

See the nano manual for detailed information on each feature.
