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

Since 9.0:
  - With M-< and M-> the viewport can be scrolled sideways.
  - When the cursor nears the edge, all lines are scrolled sideways.
  - M-Left, M-Right, M-Up, and M-Down have become rebindable.
  - Immediately stopping a recording retains the existing macro.
  - Clicking in the scrollbar crudely navigates in the buffer.

Since 8.0:
  - To accommodate newcomers, ^F now starts a forward search.
  - Option --modernbindings makes ^Q quit, ^X cut, ^C copy, ^V paste,
    ^Z undo, ^Y redo, ^O open a file, and ^G find again, among others.
  - M-Home/M-End put the cursor on the first/last row in the viewport.
  - With `nano filename:number` the given file will be opened with the
    cursor on the given line number (when 'set colonparsing' is used).
  - Option --listsyntaxes lists the names of available syntaxes.
  - Anchors are saved and restored (when --positionlog is active).
  - Key combos ^O^Q and ^X^Q cause an exit status of 2.

Since 7.0:
  - String binds may contain bindable function names between braces.
  - Word completion looks for candidates in all open buffers.
  - Unicode codes can be entered without leading zeroes.

Since 6.0:
  - Option --zero hides the interface and uses the whole terminal for editing.
  - Colors can be given also in #rgb hexadecimal, to select the nearest color
    from the 6x6x6 color-cube palette available on 256-color terminals.
  - Fourteen new color names are available, from rosy to crimson.

Since 5.0:
  - A search briefly spotlights the found text, in black on yellow by default.
  - Option --minibar reduces the interface to a bottom bar with basic info.
  - The cursor skips over combining characters, <Del> deletes them together
    with the character they combine with, but <Bsp> deletes them separately.
  - For using libmagic the option --magic or -! or 'set magic' is required.
  - With --stateflags the state of some things is shown in the title bar.
  - M-Bsp deletes a word leftward.
  - With --indicator a "scrollbar" is shown, indicating position+portion.
  - M-Ins places an anchor, M-PgUp/M-PgDn jump to the nearest anchor.
  - Toggling help lines (M-X) and Refresh (^L) work nearly everywhere.
  - Colors can be modified with the attributes "bold," and/or "italic,".
  - Nine new color names: from pink and purple to orange and latte.

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 control codes.
  - 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.

Since 2.0.0:
  - The ability to rebind keys, via a nanorc file.
  - 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 (M-U/M-E, enabled with -u).
  - Soft wrapping of text (-$).
  - 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.

Since 1.2.0:
  - 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 next item).
  - 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...
  - Insertion of single-byte characters via Esc Esc <000-255>.
  - Insertion of any character via Meta-V, "Verbatim Input".
  - Workaround for the "NumLock glitch".
  - Meta-W now repeats the last search.  Wrapping is 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 (Meta-T).
  - Justifying the entire file with one keystroke (Meta-J).
  - 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.
  - Spaces and tabs are shown differently to make it easier to tell them apart.
  - Many more functions are available at the prompt: moving to the next or
    previous word, searching for matching brackets, "Verbatim Input"...
  - "To Line" (^W^T) and "Read from Command" (^R^X) return to their parent
    menu when their keystroke is entered again (^W^T^T and ^R^X^X).
  - 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 now toggles this behavior while editing.
  - 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.

Since 1.0
  - Complete Pico compatibility (option --pico has been removed,
    and -p now means something else, see below).
  - Support for nanorc files.
  - Smooth scrolling (-S).
  - Jumping to the matching brace, bracket, 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).
  - Option -o (--operatingdir) implements a chroot of sorts.
  - Mouse support (-m) also allows clicking on shortcuts.
  - Option -r allows a negative argument.
  - 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).

Available in 1.0:
  - Spell checking (^T).
  - Justification (^J) and unjustification (^U).
  - Internationalization (more translations are welcome).
  - Help texts (^G).
  - Resizing in X.
  - On PageUp/Down, the cursor is put on the first screen line (like Pico).
  - Tab completion at the prompt (for filenames and ~user).
  - Cut-to-end-of-line option (-k).
