我知道 Kate 具有一项功能,如果行超过一定数量的字符(比如 80 个),它就会自动用换行符换行。
Notepad++ 在 Views 表下有一个自动换行功能,但它不会插入换行符。它只是在视觉上分割长行,而不会插入实际的换行符。
Notepad++ 中是否有插件或功能可以自动使用换行符断开长行?
答案1
让 Notepad++ 根据窗口的宽度插入 CR/LF(如果您选择了视图 |,则等于它换行的位置)自动换行):
- 选择文本
- CTRL+I (或者编辑 | 线路运营 |分割线)
这是好的因为它可以让你视觉预览中断将发生在调整窗口大小。它不会在特定的列号处进行分割(除非您的窗口大小与该列一致)。
- 使用 CTRL+J 连接行(逆命令)
如果要在特定列号处换行,请尝试插件 | TextFX 编辑 | ReWrap 功能。注意:如果您不想在第 72 列插入换行符,则需要先将列号复制到剪贴板中。虽然不合常规,但确实有效。
如果您曾经使用过 UltraEdit,这与“将换行转换为行尾”功能类似。
答案2
我不知道是否有插件,而且我找不到任何菜单项可以执行此操作,但可以使用正则表达式全部替换来完成...
- 寻找:
\s(?<=.{80})
- 代替:
$0\r\n
\s
这将在 80 个字符后查找最近的空格(?<=.{80})
,并替换为整个匹配项$0
,然后按回车键\r
和换行符替换\n
DOS/Windows。
\n
对于 Linux,只需使用新行。
答案3
这使用回顾和前瞻来......
- 查找 80 后的第一个字符
- 找到后跟 (1) 的连续非空格字符集
- 匹配后面跟着的空格(2)
对我来说,用换行符替换第 80 个字符之前的最后一个空格是可行的。
查找:\s(?=\S*((?<=.{80}).))
替换:\n
请注意,Replace
插入 时,N++ 中的按钮不起作用\n
。我认为这是一个错误,但使用Replace All
可以正常工作。还请注意,replace all 将在匹配(空格)后搜索下一个 80 个字符块,这应该是拆分非常长的行的正确行为。
答案4
查找最后一个空格前第 80 个字符,并在该位置分割行:
- 寻找
(.{1,80})(\h+\R?|\R)
- 代替
\1\r\n