在 Notepad++ 中进行多编辑时可以插入新行吗?有时我必须转换如下代码列表:
code01,code02,code03
像这样的列表:
code01
code02
code03
多重编辑可以很好地删除逗号,但是当我尝试输入回车键开始下一行时,多重编辑就会关闭。
我查看了文档,但什么也没找到。我知道我可以使用查找/替换对话框将逗号替换为 \n 或 \r,但在其他更复杂的情形下,多行换行创建会有所帮助。提前致谢,Graham
答案1
不要使用 Enter 键,而是输入“回车”字符 (ASCII 13)。
您可以通过按住数字键盘Alt并键入013
(NumLock 处于打开状态)来执行此操作,当您释放 Alt 键时,它会插入回车符。
刚刚在 NP++ v6.6.3 中测试过并且有效。:)
答案2
我遇到了同样的问题,Ƭᴇcʜιᴇ007 提出的解决方案对于通常针对特定操作系统平台的某些文本编码 EOL(行尾)是可行的。
因此,根据您所针对的操作系统,您可以选择使用下列方法之一:
- Alt + 013相当于\r,如 Ƭᴇcʜιᴇ007 答案中所述(通常适用于 Mac);
- Alt + 010相当于 \n(通常用于 Unix/Lilnux);
- Alt + 013和Alt + 010如果你想插入两者\r\n字符(用于 Win)。
例如使用错误的 EOL 字符Alt + 013这意味着\r如果您的目标是不同的操作系统平台,您可能需要将行尾字符转换为代码运行平台所使用的正确类型。如果您需要这样做,请转到菜单 > 编辑 > EOL 转换(行尾转换),然后从子菜单中选择代码所针对的正确平台。
此外,如果您愿意,您可以为您首选的 EOL 转换命令分配一个键盘快捷键。
进一步的更复杂的替代方法是实现宏来在编码时查找和替换自定义的占位符。
如何:
- 开始录制新的宏;
- 回想一下查找和替换对话;
- 在“查找”字段中插入一个你从未使用过的字符,例如在我的情况下,我使用了节符号“§“;
- 根据所使用的操作系统平台,在“替换”字段中插入换行符,在我的例子中是“\r\n“;
- 进入查找和替换窗口,勾选“扩展“复选框。这样 n++ 就能正确解释\r\n 将其转换为新行符号:如果不选中此选项,n++ 只会在文本中插入 \r\n;
- 按全部替换按钮;
- 停止宏录制;
- 保存宏并为其分配一个未使用的键盘快捷键(例如 Alt+Enter)。
该宏的代码如下:
<Macro name="Replace § with newline" Ctrl="no" Alt="yes" Shift="no" Key="13">
<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="§" />
<Action type="3" message="1625" wParam="0" lParam="1" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="\r\n" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
</Macro>
当然,可以将“查找”字段设置为查找,并用不同的字符代替§和不同的EOL-换行符(字符串文字\r\n) 放入替换字段,以使其适应您要针对代码的操作系统平台。
您可以将宏放入 notepad++ 目录中的 shorcuts.xml 文件中。
宏保存后,如何使用:1. 按住 Ctrl 键并用鼠标单击要插入新行的多个点;2. 插入§符号或您选择作为占位符的符号; 3. 使用适当的组合键激活宏(在我的情况下是 Alt+Enter); 4. 宏将替换所有出现的占位符“§“ 和 ”\r\n“(或者任何你选择的内容)。
在合成中你必须先按Shift+§然后按Alt+Enter
完毕
优点:所有提出的解决方案都适用于所有平台(注意相应地更改 EOL 字符!);宏解决方案的缺点是您必须选择一个不用于其他任何用途的字符占位符。
选择什么是个人喜好的问题。