【问题标题】:Is it possible to choose line ending character for display purposes?是否可以出于显示目的选择行尾字符?
【发布时间】:2019-05-13 11:04:05
【问题描述】:

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

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

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

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

PostScript 还有一个语言选项,如果您知道 PDF 是 PDF 的基础;这也不会根据需要格式化行。

是否可以在 NotePad++ 中声明 LF 是为了显示目的而开始一个新行,而 CR 是被认为只是另一个显示值? p>

这是一个示例,显示 NotePad++ 将 CRLF 都作为 EOL 格式化文本,这不是所需要的。

这应该只显示 4 行。

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


编辑

基于Julio的评论。

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

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

这是可行的,因为解析器查看原始文件,而我使用 NotePad++ 查看修改后的文件。

我不认为这是一个可以接受的答案的原因是因为我正在寻找对 NotePad++ 中的设置、插件或其他一些易于执行的方法进行更改。复制许多文件并修改它们不是我想要经常做的事情。

【问题讨论】:

  • 这听起来很棘手。但是由于您只是将它用于显示目的,也许您可​​以将所有 CR 字符替换为其他一些东西,如 unicode NEL,或一些虚拟字符串,如 <WAS_A_CR>
  • 谢谢!我将其添加为答案,因为您可以使用宏使整个过程自动化。因此,您只需单击一下即可。

标签: notepad++ line-endings


【解决方案1】:

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

一般的想法是创建文件的副本并将\r替换为一些虚拟文本,例如<was CR>

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

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

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

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

流程演示:

【讨论】:

  • 这很酷,但正如您所说,这是一种解决方法,所以不要接受投票。
  • 我认为这是我们最接近“设置”的地方......让我们看看! :)
  • 我如此关注行尾的原因是,当我编写解析器的粗略副本时,我只解析出行,然后计算它们。然后为了验证粗略解析器是否正常工作,我检查它对编辑器计数的计数,如果他们同意我继续工作。在这种情况下,数字是关闭的,这导致我发现使用 CR 本身作为换行显示字符。
最近更新 更多