在记事本++中进行EOL转换


113

由于某些原因,当我从Windows计算机上的UNIX服务器上打开文件时,它们有时会进行Macintosh EOL转换,而当我再次编辑/保存它们时,它们在UNIX服务器上无法正常工作。我只使用记事本++来编辑来自此UNIX服务器的文件,所以有什么方法可以创建一个宏,该宏在每次打开文件时自动将EOL转换为Unix格式?



1
您的问题可能与所使用的FTP程序有关。例如,我使用WinSCP远程进入Unix服务器,将Notepad ++设置为默认编辑器,但是我必须进入WinSCP的设置并将传输模式设置为Binary,以保留行尾。因此,您可以重新配置FTP / SCP / etc程序,以其他方式传输文件。
Slicktrick

Answers:


200

该功能已内置在Notepad ++中。从“编辑”菜单中,选择“ EOL转换”->“ UNIX / OSX格式”。

该选项的屏幕快照,以便更快地查找(或其他语言版本)

您也可以通过“设置”->“首选项”->“新文档/默认目录”在notepad ++中设置默认EOL,然后在“格式”框下选择“ Unix / OSX”。


7
我知道编辑菜单中的转换,您提到的设置仅适用于新文档。我想自动为每个文件我打开转换(或每个文件我省)
杰夫

问题是当我打开现有的Unix文件时,“ EOL转换”-> UNIX / OSX格式显示为灰色。Notepad ++难以与UNIX文件一起使用,因此我使用Notetab Lite,它使我可以将所有文件另存为UNIX,而不仅仅是新文件。
关金

3
@OffTheGold UNIX EOL选项为灰色,因为它是当前选择。
blakeoft

继续前进。自2017年11月起,感谢您通过Google。
SDsolar

这对我没有用。我一直选择“ EOL Conversion-> Unix”,但是它什么也没做。我回到菜单,看到Windows变灰(因此被选中?),所以我再次单击Unix。我什至尝试选择所有文本,以防万一它只能在选择时起作用,然后再次选择Unix。仍然没有任何作用。
罗杜维克

16

在记事本++中,使用用正则表达式替换全部。与菜单中的转换命令相比,它具有优势,您可以在整个文件夹中操作,而不必打开每个文件或拖放n个文件(在数百个文件中,它会明显变慢),此外您还可以设置文件名通配符过滤器。

(\r?\n)|(\r\n?)

\n

这将匹配所有可能的行结束模式(单个\ r,\ n或\ r \ n)回到\ n。(如果要转换为Windows样式,则为\ r \ n)

要对多个文件进行操作,请执行以下任一操作:

  • 在“替换”选项卡中使用“在所有打开的文档中全部替换”。您必须首先将所有文件拖放到Notepad ++中。最好可以控制要操作的文件,但是如果有数百或数千个文件,则速度可能会很慢。
  • 通过选择的文件过滤器(例如,在一个指定目录下的* .cpp * .cs)在“查找文件”选项卡中的“替换文件”。

由于用单个\ n替换\ r \ n \ r \ n,这可能会导致EOL丢失。我认为。
Sunspawn

确认在Notepad ++ 6.9.1中工作。它将向前搜索,因此不会递归替换后面的那些。
Wappenull '16

答复:“由于使用单个\ n替换\ r \ n \ r \ n,这可能导致EOL丢失” >>不会,因为它使用| (或)2个可能组之间的运算符。
Wappenull

3

我从WinSCP“直接”打开文件,该文件在Notepad ++中打开文件。我的linux服务器上有一个php文件,无论我做什么,它总是以Mac格式打开:-(

如果我下载了该文件,然后从本地(Windows)打开了该文件,则以Dos / Windows .... hmmm的形式打开

解决方案是将本地文件EOL转换为“ UNIX / OSX格式”,保存然后上传。

现在,当我直接从服务器打开文件时,它以“ Dos / Windows”打开:-)


1

根据您的项目,您可能需要考虑使用EditorConfig(https://editorconfig.org/)。有一个Notepad ++插件,它将加载.editorconfig,您可以在其中指定“ lf”作为强制行结尾。

我只是开始使用它,但到目前为止还不错,而且我从事的开源项目多年来都包含.editorconfig文件。“ EOL转换”设置未更改,因此可能会有些混乱,但是,如果“查看>显示符号>显示行尾”,即使“ ”,而底下角则显示其他内容(例如Windows(CR LF))。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.