[ANNOUNCE] nano-9.0 is released
Benno Schulenberg via Info-nano <[email protected]> Wed, 8 Apr 2026 17:28:31 +0200
| Newsgroups | gmane.editors.nano.announce,gmane.editors.nano.devel |
|---|---|
| Message-ID | <[email protected]> |
2026.04.08 - GNU nano 9.0 "Le bonheur est dans le pré"
• When the cursor almost goes offscreen to the right, all lines are
now scrolled sideways together, by just the amount needed to keep
the cursor in view. Use --solosidescroll or 'set solosidescroll'
to get back the old, jerky, single-line horizontal scrolling.
• The viewport can be scrolled sideways (in steps of one tabsize)
with M-< and M->. See `man nanorc` if M-< and M-> should switch
between buffers (as they did earlier).
• M-Left, M-Right, M-Up, and M-Down have become rebindable.
• Stopping the recording of a macro immediately after starting it
cancels the recording and leaves an existing macro in place.
• Feature toggles no longer break a chain of ^K cuts or M-6 copies,
except the M-K cut-from-cursor toggle.
• With --mouse and --indicator, one can click in the scrollbar area
to roughly navigate within the buffer.
GNU nano is a simple and easy-to-use editor for on the terminal.
https://nano-editor.org/manual.html
A concise overview of nano's command keystrokes:
https://nano-editor.org/cheatsheet.html
The tarball and its signature are here:
https://nano-editor.org/dist/v9/nano-9.0.tar.xz
https://nano-editor.org/dist/v9/nano-9.0.tar.xz.asc
Syntax highlighting for AsciiDoc files:
https://nano-editor.org/more-syntaxes/adoc.nanorc
Syntax highlighting for TOML files:
https://nano-editor.org/more-syntaxes/toml.nanorc
Specific issues that were addressed in this release:
https://savannah.gnu.org/bugs/?68046 (`runmacro` caused cutbuffer clearing)
https://savannah.gnu.org/bugs/?68050 (all toggles caused cutbuffer clearing)
https://savannah.gnu.org/bugs/?68109 (uncolored end-of-line groff comments)
https://savannah.gnu.org/bugs/?68117 (no config for reading /etc/nanorc)
https://bugzilla.redhat.com/2455314 (too broad permissions for ~/.local)
Changes between v8.7 and v9.0:
------------------------------
Charles Mirabile (1):
macro: cancel the recording if nothing was entered between start and stop
Benno Schulenberg (93):
bindings: assign M-< and M-> to the sideways-scrolling functions
build: add move.c to the list of files that contain translatable strings
build: avoid three warnings when compiling against glibc-2.43
build: exclude whole-window sideways scrolling from the tiny version
bump version numbers and add a news item for the 9.0 release
copyright: update the years for significantly changed files
copyright: update the years for significantly changed files
copyright: update the years for the FSF
display: add extra variable, to avoid one-way toggling of SOLO_SIDESCROLL
display: begin looking for new start matches at the correct place
display: correct the previous commit -- the -1 is needed when going left
display: draw the "<" marker only if part of the line is onscreen
display: for narrow windows, fall back to single-line sidescrolling
display: let option --jumpyscrolling affect also sideways scrolling
display: put cursor at CUSHION columns from edge when scrolling sideways
display: redraw the screen also when 'brink' is not what it should be
display: store `brink` per buffer, to keep the viewport stable
display: when scrolling sideways, refresh edit window only if mark is on
docs: add an Exit Status section to the man page and the manual
docs: add a notice about the changed sideways scrolling behavior
docs: add a section about the recording and replaying of keyboard macros
docs: add ^B among the list of keystrokes for --modernbindings
docs: add notices about the reassignment of the M-< and M-> keystrokes
docs: adjust the cheatsheet for the new functions and changed bindings
docs: adjust the description of `scrollright` for the changed behavior
docs: adjust the description of `scrollright` for the improved behavior
docs: advise the use of --sysconfdir=/etc when configuring nano
docs: copy the 8.7.1 news item from the release branch
docs: document the new bindable `scrollleft` and `scrollright` functions
docs: document the new --solosidescroll and 'set solosidescroll' options
docs: explain what "overlong" means for --breaklonglines
docs: in the cheatsheet, place Ctrl+L in the Special movement section
docs: mention that M-Left, M-Right, M-Up, and M-Down are valid keynames
docs: reshuffle the --solosidescroll option to match the order in --help
docs: trim stuff that is more than four years old from the changelog
docs: use rebindable names M-Up and M-Down instead of Alt+Up and Alt+Down
feedback: prevent interpretation of %s and similar in a filename
files: include also the slash when re-adding the filename to the path
gnulib: update to a recent version, to allow compiling against glibc-2.43
gnulib: update to its current upstream state
help: group the sideways scrolling keystrokes with the horizontal movers
history: create the ~/.local directory with limited access rights
input: allow `recordmacro` and `runmacro` to continue cuts and copies
input: prevent also a string bind from breaking a chain of cuts or copies
input: prevent most toggles from breaking a series of cuts or copies
mouse: allow clicking before the answer to place cursor at its beginning
moving: ignore `scrollleft` and `scrollright` when softwrapping
moving: ignore `scrollleft` and `scrollright` with --solosidescroll too
moving: make the minimum step for sideways scrolling two cells
moving: stay in the viewport when stepping to a longer line
moving: when scrolling sideways, search also upward for a longer line
* new default feature: smooth whole-window sideways scrolling
* new feature: bindable functions for scrolling a tabsize left or right
* new feature: clicking in the scrollbar jumps to the corresponding line
options: accept --solosidescroll and 'set solosidescroll'
po: update translations and regenerate POT file and PO files
rcfile: allow rebinding M-Left, M-Right, M-Up, and M-Down
syntax: elisp: remove file -- something specific to Emacs is not for nano
syntax: groff, man: colorize also \" tail comments and \# line comments
syntax: guile: colorize more syntax words and procedure names
syntax: nanorc: colorize M-Left, M-Right, M-Up, M-Down as valid keynames
syntax: python: colorize also the `match` and `case` keywords
syntax: python: require a blank after the keyword `match`
syntaxes: add a license line to the files created by Mark Oteiza
tweaks: add a comment for an unclear fragment of code
tweaks: avoid having to restore the original click coordinates
tweaks: condense the Python coloring rules, and reword a comment
tweaks: condense two oververbose comments
tweaks: correct a comment
tweaks: correct and simplify the logic from the previous two commits
tweaks: defend against hypothetical format specifiers
tweaks: give the three "debugging" feedback messages a more unusual color
tweaks: lowercase subsequent words in section titles, to be less pompous
tweaks: move a function to a more logical place
tweaks: no need to be overpolite when giving directions
tweaks: normalize brace placement after the previous change
tweaks: reduce the scope of two variables
tweaks: refer to two renamed gnulib modules with their adjusted names
tweaks: remove an unneeded parameter from get_mouseinput()
tweaks: rename a type, away from a double abbreviation
tweaks: rename a variable, away from a double abbreviation
tweaks: rename a variable, for contrast, and to be more fitting
tweaks: rename a variable, to be more fitting
tweaks: rename a variable, to be more fitting and away from an abbrev
tweaks: rename a variable whose function has changed over time
tweaks: rename three functions, to be more accurate
tweaks: rename two functions, reword some comments, rewrap a line
tweaks: rename two variables, away from abbreviations
tweaks: reorder a list of keys, starting with singles, ending with group
tweaks: replace the three instances of impersonal "one" with direct "you"
tweaks: reshuffle or transmute a few lines, to elide an 'if'
tweaks: slightly adjust a wording
tweaks: slightly improve three comments in the sample nanorc
--
Benno
_______________________________________________
Info-nano mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/info-nano
OpenPGP_signature.asc
(application/pgp-signature, 840 B)
-----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEEFo5vQpe/16ea/USWUUu+Lrjhlh8FAmnWdCAFAwAAAAAACgkQUUu+Lrjhlh+6 8A//Ut0DiMqlpBhIQzo0olE09Y/i5T3r3attRJa43iTAwfH36IBjsdwOhstE1GFivYtLhQf6sMfp LRuG0u3EPP3WaysdUOdZTHdOC4ZSSxkEx8UAmeQYWVaWkhvbhNbyuDMXoWdtrZtN1K19kaSBByeq 4Kq23aR7uo+omoQ4zAHEHJPy87NtYpspZ0/GGUKZh+7Zz7l0Ei33zx5WCReMWgfx/r3jOVLNGy2f zUDX1FIHccoMFF0bFh7gmkxvN49tGSYsPWmrzlm1hFf3QpK2QLrplTstChqjpp4M6BILJ83pk/j+ E1XZh6KLiS8+DyNFSiyMxD7nZD61Q27KRrZUSUsisoWhqe0cJ/HTXUrPAWNgUMOMx4FOMSn4v/tb wnxSaeXOYf/OwGX9aYd2KDRjopTswC4MU6rNe+OJnsBakMX+MGZYUmF9Fo/YFSkTnaFkl7JM9uS1 Dov+z0IN0B5OQqIu94tmwCd4+ZgVmO95Ntk+nffs8GLohlSvJOe8rkCN8zwLBXoStagsH+YXJCSw 4dubv0sVeD5fA2qKkc9027H/cczIT3xc8JVuocrKmUi0lumIyOH0hEVQd3RcDO5XwCRT+DHQRDdP vZmK1BrjBjsyZfZ3ii2fDsjf7+CO8PsK5xudolfXPkyTOL68DLuuD0ICMuQ+KkZ3j8L90LHgF3D5 GvY= =UBMP -----END PGP SIGNATURE-----