Long line wrapping in Nano

When editing an authorised_keys file in Nano, I want to wrap long lines so that I can see the end of the lines (i.e tell whose key it is). Essentially I want it to look like the output of cat authorised_keys

So, I hit Esc + L which is the meta key for enabling long line wrapping on my platform and I see the message to say long line wrapping has been enabled but the lines do not wrap as I expect.

I’m using Terminal on OSX 10.8.5

Asked By: codecowboy

||

Just searched for nano line wrapping and this came high in results, so I’ll post my findings for GNU nano 2.2.6 on the Raspberry Pi, Raspbian GNU/Linux 7: Esc+L gave me the same message; but for the line wrapping to take effect I had to modify the line. As soon as I typed another character on the long line, wrapping kicked in.

Answered By: chainsawmascara

To see the word wrapping style you described, use nano’s “soft wrapping”: Esc+$.

The Esc+L command you (and everyone) tried does “hard wrapping.”

Note on keystroke notation – if you are new to Linux, the notation Esc+$ means press and release Esc and then press $. The full key press sequence then is Esc, Shift+4.

(It does not mean hold down escape while pressing $.)

Source: https://www.nano-editor.org/dist/v2.9/nano.html (search for –softwrap)


Note on softwrap and formatting mistakes – If you are new to nano, be a little careful of softwrap. If you are editing a configuration file or something else that is sensitive to newlines or indents, formatting mistakes can be made. Until you get comfortable with softwrap’s behaviors, I suggest doing a quick check with softwrap off (do the key sequence again) before saving.

Note on the goodness provided by others in their answers below – because different operating systems and different versions of nano do things a little differently:

  • If you like softwrap on all of the time, set it in your .nanorc, as described in x0a’s answer below, as it is a bit more through than Prashant’s.
  • If you have a Raspberry Pi, note chainsawmascara’s answer about needing an extra keystroke for softwrap to go into effect.
  • If you have a Mac, like lodeOfCode’s answer below, you can always update nano and here, and thus bask in the warm glow of softwrap!

Answered By: coreyt

I’m reading the replies here and need to set this straight!

Nano supports two different forms of line wrapping, and it can be essential to know the difference!

First, the Meta key below is often the Alt key, but not necessarily.

  • Soft line wrapping is activated with Meta$. Wraps lines without inserting line break characters into the file. That is, the effect is purely visual.
  • Hard line wrapping is activated with MetaL. Wraps lines by inserting line breaks into the file. The file is physically changed.

So if you activate it in a file where wraps are meaningful (configuration files, programming languages, scripts), you basically never want the hard line wraps or it’ll change the meaning of the code.

Also, you’d have found these shortcuts with ^G (i.e. CtrlG) in Nano.

Answered By: Jonas

Setting aliases for your nano editor also work well.
I normally use:

 alias  e='nano -$cwS'
 alias se='sudo nano -$cwS'

Add the aliases to the end of either your ~/.bashrc,
~/.bash_aliases, or your favorite shell startup file.

Usage:

e [filename]

or sudo version:

se [filename]

Flags/Options used:

$ = Enable soft-wrapping of lines (escaped using backslash)
c = Show constant cursor position (at bottom)
w = Disable any ‘hard wrapping’
S = Smooth scrolling

And (as already mentioned) once in editor, use Esc, $ to toggle soft-wrapping ON/OFF.

Answered By: B. Shea

Open the nanorc generally at ~/.nanorc or /etc/nanorc, comment out the line

set nowrap

And uncomment line

set softwrap
Answered By: Prashant Shubham

Mac users be advised the version of Nano shipped with High Sierra (v2.0.6) or earlier doesn’t support soft line wrapping as described here. You’ll get an unknown command error. v2.2 is the earliest version with mention of soft wrap in the man pages. So don’t spend an hour trying all these solutions like I did.

Esc+L does work as expected.

Answered By: lodeOfCode

You can set the defaults in ~/.nanorc. But keep in mind the configuration settings for nano 1, nano 2, and nano 3 are different.

On nano 1, you only have the set nowrap setting which disables all wrapping.

On nano 2, set softwrap was added, which enables softwrapping and disables hardwrapping. set nowrap was changed so that it only disables hardwrapping

On nano 3, set softwrap is ignored and nano continues to hardwrap unless you also set nowrap.

So if you want text wrapping for long lines that doesn’t break your configuration files (softwrapping only), this works for versions 2 and 3: Add the following 2 lines to ~/.nanorc

set nowrap
set softwrap
Answered By: x0a

To only do this when you want to, you can use:

nano -$ file.txt
Answered By: dtbarne
Categories: Answers Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.