2013-04-26 60 views
75

出于某种原因,当我从Windows机器上的unix服务器打开文件时,它们偶尔会进行Macintosh EOL转换,并且当我再次编辑/保存它们时,它们在unix上无法正常工作服务器。我只使用notepad ++来编辑这个unix服务器中的文件,那么有没有办法创建一个当我打开文件时自动将EOL转换为Unix格式的宏?记事本中的EOL转换++

+0

可能重复[一次改变多个文件的EOL](http://stackoverflow.com/questions/11341660/change-eol-on-multiple-files-in-one-去) – 2015-07-23 15:50:37

+1

您的问题可能与您使用的任何FTP程序。例如,我使用WinSCP远程访问Unix服务器,Notepad ++被设置为我的默认编辑器,但我必须进入WinSCP的设置并将传输模式设置为'Binary'以保持行结束。因此,您可能能够重新配置您的FTP/SCP/etc程序以不同的方式传输文件。 – Slicktrick 2017-02-22 22:11:42

回答

133

该功能已经内置到Notepad ++中。从“编辑”菜单中选择“EOL转换” - >“UNIX/OSX格式”。您也可以通过“设置” - >“首选项” - >“新建文档/默认目录”在记事本++中设置默认的EOL,然后在格式框下选择“Unix/OSX”。

+6

我知道编辑菜单中的转换,您提到的设置仅适用于新文档。我想为每个打开的文件(或我保存的每个文件)自动进行转换 – Jeff 2013-05-01 16:04:04

+0

问题是,当我打开一个现有的Unix文件时,“EOL转换” - > UNIX/OSX格式变为灰色。记事本++是令人沮丧的用于UNIX文件,所以我使用Notetab Lite,它允许我将所有文件保存为UNIX,而不仅仅是新的。 – 2016-12-29 16:37:04

+2

@OffTheGold UNIX EOL选项呈灰色,因为它是当前的选择。 – blakeoft 2017-06-06 15:47:11

9

在Notepad ++中,使用全部替换为正则表达式。这与菜单中的转换命令相比具有优势,您可以在不需要打开每个文件或拖放n个文件夹(在几百个文件上明显变慢)的整个文件夹上操作,此外还可以设置文件名通配符筛选器。

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

\n 

这将每一个可能的行结束图案(单\ r \ n或\ r \ n)的回\ n匹配。

对多个文件进行操作,或者:

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

这可能会导致EOL因单个\ n替换\ r \ n \ r \ n而丢失。我认为。 – Sunspawn 2016-03-20 16:16:35

+0

确认在Notepad ++ 6.9.1中工作。它会向前搜索,因此不会递归地替换那些后面的。 – Wappenull 2016-07-05 04:06:22

1

我打开文件“直接”从WinSCP赋予这将打开文件在记事本++ 我总是在Mac格式打开我的Linux服务器上的PHP文件,无论我做什么:-(

如果我下载文件,然后从本地(Windows)打开它作为Dos/Windows打开。嗯

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

现在,当我直接从服务器打开文件它打开为“D操作系统/ Windows“:-)