Nano中的长行换行


65

在Nano中编辑authorised_keys文件时,我想换行以使行尾可见(即告诉它是谁的键)。本质上,我希望它看起来像cat authorised_keys

因此,我点击Esc + L了在平台上启用长行换行的meta键,并且看到消息说长行换行已启用,但行未按我的期望进行换行。

我在OSX 10.8.5上使用Terminal

Answers:


88

要查看您描述的自动换行样式,请使用nano的“自动换行”:Esc+ $。您(以及所有人)尝试过

Esc+ L命令会进行“硬包装”。

关于按键符号的注意事项 -如果您不熟悉Linux,则符号Esc+ $表示按下并释放Esc,然后按$。然后,全按键顺序EscShift+4

(它并不意味着按住漏出,同时按$)。

资料来源:https : //www.nano-editor.org/dist/v2.9/nano.html(搜寻--softwrap)


有关softwrap和格式错误的注意事项 -如果您不熟悉nano,请谨慎使用softwrap。如果您正在编辑配置文件或其他对换行符或缩进敏感的文件,则可能会出现格式错误。在您对softwrap的行为感到满意之前,建议您在保存前先进行一次Softwrap的快速检查(再次执行键序列)。

注意其他人在下面的回答中所提供的好处 -因为不同的操作系统和不同版本的nano所做的事情略有不同:


3
这是我最大的纳米宠物。感谢您对此进行整理。
user208145

1
我建议启用行号Alt + Shift + 3set linenumbers~/.nanorc设置文件中。
Daniel Sokolowski

1
请注意,nano的较早版本不包含此软包装功能。在2.0.9版中不包含此功能,但在2.5.3版中包含。如果您使用的版本不具有此功能,则它将在文本编辑区域的底部中心显示警告消息“未知命令”。
frederickjh

15

我正在阅读这里的答复,需要弄清楚这一点!

Nano支持两种不同的换行形式,因此必须知道其中的区别!

首先,下面的Meta键通常是Alt键,但不一定。

  • Meta- 激活软线换行$。在插入换行符的情况下换行。也就是说,效果是纯粹的视觉效果。
  • 硬线换行通过Meta- 激活L。自动换行,通过插入换行符到文件中。文件已物理更改。

因此,如果在包装有意义的文件(配置文件,编程语言,脚本)中激活它,则基本上就不需要硬包装,否则它将改变代码的含义。

此外,您还会在Nano中找到带有^ G(即Ctrl- G)的快捷方式。


5
Meta $= Alt+ Shift+4
JamesTheAwesomeDude

1
在nanorc中启用软包装set softwrap,而在nanorc中禁用硬包装set nowrap
mwfearnley

14

只是搜索了纳米线换行,结果很高,所以我将在Raspberry Pi,Raspbian GNU / Linux 7上发布有关GNU nano 2.2.6的发现:Esc+ L给了我相同的信息。但是为了使换行生效,我必须修改该行。一旦我在长行上键入另一个字符,包装就会开始。


6

通常在〜/ .nanorc或/ etc / nanorc中打开nanorc,注释掉该行

set nowrap

和取消注释行

set softwrap

1
在pfSense(可能还有FreeBSD)上,所需的文件是/ usr / local / etc / nanorc。失败了,我想find / -type d -name etc还会找到其他可能的位置。
mwfearnley

5

为您的nano编辑器设置一个简短的别名也很好。我通常使用:

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

(在~/.bashrc(或.bash_aliases在某些系统上)或您喜欢的shell启动中进行设置)

使用的标志/选项:

\$=使能线的软包装纸(转义使用反斜杠)
c =显示恒定的光标位置(在底部)
w =禁用任何“硬包装”
S =平滑滚动

而(前面已经提到)在编辑器中,使用一次Esc$可切换软包装纸ON / OFF。


3

您可以在中设置默认值~/.nanorc。但是请记住,nano 1,nano 2和nano 3的配置设置不同。

在nano 1上,您仅具有set nowrap禁用所有换行的设置。

在nano 2上set softwrap添加了启用软包装和禁用硬包装的功能。set nowrap已更改,因此禁用硬包装

在nano 3上set softwrap除非您也忽略,否则nano将继续进行自动包装set nowrap

因此,如果您希望长行换行而不会破坏您的配置文件(仅软包装),则适用于版本2和版本3:将以下2行添加到~/.nanorc

set nowrap
set softwrap

这也是一个深思熟虑的答案,我从上面的答案中引用了它。
coreyt

2

建议Mac用户注意,High Sierra(v2.0.6)或更早版本附带的Nano版本不支持此处所述的换行。您将收到未知的命令错误。v2.2是最早的版本,在手册页中提到了自动换行。因此,不要像我一样花一个小时尝试所有这些解决方案。

Esc + L确实按预期工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.