出于某种原因,当我在 Windows 机器上从 unix 服务器打开文件时,它们偶尔会进行 Macintosh EOL 转换,当我再次编辑/保存它们时,它们在 unix 服务器上无法正常工作。我只使用记事本++来编辑来自这个unix服务器的文件,那么有没有办法创建一个宏,当我打开文件时自动将EOL转换为Unix格式?
4 回答
该功能已经内置在 Notepad++ 中。从“编辑”菜单中,选择“EOL 转换”->“UNIX/OSX 格式”。
您还可以通过“设置”->“首选项”->“新建文档/默认目录”在 notepad++ 中设置默认 EOL,然后在“格式”框下选择“Unix/OSX”。
在 Notepad++ 中,使用正则表达式替换所有。这比菜单中的转换命令具有优势,您可以对整个文件夹进行操作,而无需打开每个文件或拖放(在数百个文件上它会明显变慢),而且您还可以设置文件名通配符过滤器。
(\r?\n)|(\r\n?)
至
\n
这会将所有可能的行结束模式(单个 \r、\n 或 \r\n)匹配回 \n。(或者 \r\n 如果您要转换为 Windows 样式)
要对多个文件进行操作,请执行以下任一操作:
- 使用“替换”选项卡中的“全部替换所有打开的文档”。您必须先将所有文件拖放到 Notepad++ 中。您可以控制要操作的文件,但如果有数百或数千个文件可能会很慢。
- “在文件中查找”选项卡中的“在文件中替换”,按您选择的文件过滤器,例如,指定目录下的 *.cpp *.cs。
我从WinSCP“直接”打开文件,它在Notepad ++中打开文件我的linux服务器上有一个php文件,无论我做什么,它总是以Mac格式打开:-(
如果我下载了文件,然后从本地(Windows)打开它,它会以 Dos/Windows 的形式打开....嗯
解决方案是将本地文件 EOL 转换为“UNIX/OSX 格式”,保存然后上传。
现在,当我直接从服务器打开文件时,它以“Dos/Windows”的形式打开:-)
根据您的项目,您可能需要考虑使用 EditorConfig ( https://editorconfig.org/ )。有一个 Notepad++ 插件将加载一个 .editorconfig,您可以在其中指定“lf”作为强制行结尾。
我才开始使用它,但到目前为止它还不错,而且我从事的开源项目多年来一直包含 .editorconfig 文件。“EOL 转换”设置没有更改,因此可能有点混乱,但如果您“查看 > 显示符号 > 显示行尾”,您可以看到它添加的是 LF 而不是 CRLF,即使在“EOL 转换”时" 并且下角显示其他内容(例如 Windows (CR LF))。