记事本忽略换行符

Dam*_*mon 39 windows-7 notepad linebreaks

我最近在 Windows 7 下的 notepad.exe 中打开的大多数文档都没有换行符……一切都运行在一起。任何其他程序中的相同文档,即使直接在资源管理器中预览,也会正确显示换行符。这发生在许多 .info 文件、.css、.js.. 但不是全部。

我猜这是某种字符编码 unix 行结尾的某种东西,但想知道我是否可以做任何事情,或者是否有其他人经历过类似的事情,以及我是否可以使记事本正常工作。对于某些用途,我更喜欢记事本++/其他文本编辑器。

Pau*_*aul 46

有换行符,但是不同的操作系统识别不同的换行符顺序。

记事本仅识别 CR、LF(0x0d、0x0a),而其他来源可能仅使用 CR 或仅使用 LF。

您不能使记事本的行为有所不同,因此您唯一的选择是确保内容具有记事本的正确顺序。请注意,记事本是唯一具有此限制的编辑器,因此如果您的内容在记事本中可以使用,那么它在其他任何地方都可以使用。

修复换行符的一种简单方法是将文本复制并粘贴到 Word 中,然后再次回到记事本中,换行符将“更正”为 CR,LF 序列。

  • 啊哈!听起来有点像放弃记事本可能要容易得多;P (38认同)
  • 我觉得这个二十岁的限制从来没有被修复过真的很令人困惑...... (4认同)
  • 好消息,该技术[终于到货](https://blogs.msdn.microsoft.com/commandline/2018/05/08/extended-eol-in-notepad/)。 (2认同)

Red*_*ick 9

写字板

如果您对 notepad++ 和其他文本编辑器的反感是它们不是所有 Windows 系统的标准部分,请使用写字板。它不像记事本那么简陋。

写字板将正确读取和显示带有 Unix 行尾的文本文件。

其他

如果您不喜欢这两种真正的文本编辑器,那么 notepad++ 可能是一个不错的选择。

  • 对于今年以后阅读的任何人,您可以在首选项中关闭此功能,例如“记住当前会话以备下次启动” (2认同)
  • @Damon 我也曾经讨厌这种行为,但您可以禁用它。您只需要配置 Notepad++ 不重新打开旧会话。转到设置 --> 首选项 --> 备份。取消选中“记住当前会话以备下次启动”。 (2认同)

小智 5

正如OP中特别提到的那样,Notepad ++(至少现在)具有以下所需的设置:

编辑 --> EOL 转换 --> Windows 格式。


MD *_* XF 5

您可以编写一个简单的批处理脚本:

@ECHO OFF
TYPE %1 | FIND /V "" >%1.1
MOVE %1.1 %1 > NUL 2>&1
START "NOTEPAD" C:\WINDOWS\SYSTEM32\NOTEPAD.EXE %1
EXIT /B
Run Code Online (Sandbox Code Playgroud)

将其另存为notepad.bat您喜欢的任何目录。然后,而不是打开你的.info/ .css/.js用记事本文件,这个批处理脚本打开它们。它会自动将所有 Unix 行结尾转换为 DOS,然后用记事本打开文件。

缺点:

  • 每次打开程序时,它都会在文件末尾附加一个换行符。(由@mpag 修复
  • 打开命令提示符窗口(已START在第 4 行修复)
  • 将文件的创建日期更改为当前日期