可以出于显示目的选择行尾字符吗?

时间:2019-05-13 11:04:06

标签: notepad++ line-endings

对于PDF文件,某些数据是文本,而某些数据是原始数据流。

在编写PDF文件解析器时,我正在使用NotePad ++查看文件以查看各个字符,还使用HxD查看十六进制代码。

使用NotePad ++打开PDF文件时,它会将 CR (0xOD 13)或 LF (0x0A 10)视为行尾字符,并使用任一字符显示新行的开始。但是,我只需要 LF 被视为新的换行字符并出于显示目的而开始新的行,而 CR 则不被视为新的换行字符。

在编辑时,有一种方法可以更改按回车键时输入的EOL字符,(菜单:编辑-> EOL转换)我找不到改变行尾字符格式化显示方式的方法。

PostScript还有一个语言选项,如果您知道PDF是PDF的基础,则该选项;也会导致行格式不符合要求。

在NotePad ++中是否可以声明 LF 出于显示目的而开始新行,而 CR 仅被视为另一个显示值?

下面是一个示例,该示例显示NotePad ++使用 CR LF 作为EOL来格式化文本,这不是必需的。

enter image description here

这应该仅显示4行。

第2行在 CR 处拆分,这是不希望的。

enter image description here


编辑

基于Julio的评论。

虽然我不认为这是可以接受的答案,但这是一个很好的解决方法。在此处发布其他可能会发现此问题并希望看到建议的人。

制作文件的副本,然后对其进行修改以在NotePad ++中查看。在这种情况下,\r被替换为<was CR>

之所以有用,是因为解析器查看原始文件,而我使用NotePad ++查看修改后的文件。

enter image description here

之所以我不认为这是可以接受的答案,是因为我正在寻找对NotePad ++中的设置,插件或其他易于实现的方式进行更改的方法。我不想定期制作许多文件的副本并进行修改。

1 个答案:

答案 0 :(得分:1)

这是解决方法,但我认为它可能对您有用。

通常的想法是创建文件的副本,并用\r之类的伪文本替换<was CR>

您可以使用宏使整个过程自动化。我们将首先记录动作,然后在需要时能够“播放”它们。因此,只需单击一下,便可以达到预期的效果。

  1. 按下录制宏按钮
  2. Control + A 选择所有内容
  3. Control + C 复制内容
  4. Control + N 创建新标签页
  5. 使用 Control + V
  6. 将复制的内容粘贴到新选项卡中
  7. Control + H 启动搜索并替换
  8. \r替换为<was CR>
  9. 关闭搜索和替换对话框
  10. 按下顶部录制宏按钮

现在,只需按一下要更改的文件上的播放按钮。由于已创建“新的”内存中临时文件,因此您将不会修改原始文件。

请记住,您可以保存宏,以便它们可以在会话重新启动后持续存在。

该过程的演示:

Demo of the macro