Nano插入换行中的换行符

时间:2014-09-21 13:18:54

标签: regex search replace nano

基本上,我需要将文本的一部分加倍。我知道我可以用:

sed G

但如果我能直接在Nano中完成它会很棒。

我尝试搜索行尾($),然后将其替换为\n[:newline:]之类的内容,但似乎RegExp只能用于搜索,而不是replace - 它总是插入文字表达式。

然而,this question表明它是可能的。虽然我无法弄清楚如何。是的,我有:

set regexp

在我的.nanorc

3 个答案:

答案 0 :(得分:14)

配置文件中的

set regexp将:

  

默认情况下,扩展正则表达式搜索。

您也可以使用 Meta + R *

以交互方式激活它

但那就是它!使用RegEx进行搜索,但作为替换Nano只接受字符串,除了引用捕获的组\1\9

Nano的RegEx风格是POSIX实现,对于您感兴趣的内容,它不会计算[:newline:]但接受\s[:cntrl:](控制字符)和{{ 1}}(所有空白字符,包括换行符)也否定POSIX classes[:space:]

答案

它无法完成,没有任何效果,尝试过:

  • 空白显示切换 Meta + P - 无可见变更
  • 逐字输入 Meta + Shift + V 然后按 Enter 会转换为 可见[^[:graph:]] 编码(但适用于 Tab 输入)
  • " Special Functions" Esc + Esc 然后是3位数序列 - 控制字符 不被接受 (但接受可见字符{{1}实际上会像按下 Enter
  • 一样解释它
  • Unicode Input Ctrl + Shift + U - 控制字符 不接受 < / strong>(但接受可见的字符)

某些控制字符的ASCII代码:

^M

Nano命令:

  • 搜寻 Ctrl + W
  • 查找下一个 Meta + W *
  • 搜索 Ctrl + R
  • 时切换替换
  • 搜索&amp;替换 Ctrl + \

* Meta通常是 Alt

<小时/> <子> PS:&#34;有时候失败就是答案,或者有人应该证明我错了&#34;
PPS:

答案 1 :(得分:5)

目前目前无法在nano 中执行此操作,但my feature request也标记为&#34; wontfix,太难&#34;在bug跟踪器中也是如此。

答案 2 :(得分:2)

  1. 选择文本块。
  2. 按插入命令。
  3. 按flipexecute命令。
  4. 按flippipe命令。
  5. 按flipnewbuffer命令。
  6. 执行所需的任何外部命令。该命令将选择内容通过管道传递到stdin中,并且选择内容将由命令的stdout替换。

此外,您可以通过记录和运行宏来使其自动化。 您还可以将键绑定到宏序列。