问题标签 [eol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
26103 浏览

svn - 有没有办法让 TortoiseSVN 保持原样离开 EOL(行尾)?

我正在检查具有 Linux 风格行结尾的文件(只是 LF 字符)。当我在 Windows 中使用 TortoiseSVN 签出文件时,它会将行尾转换为 Windows 样式 (CR+LF)。我尝试将这些行添加到 subversion 配置文件以强制它使用 LF,是的,我确实设置了 enable-auto-props = yes。这不起作用,即使它起作用,也不是我想要的,因为我宁愿让 TSVN 根本不接触文件。照原样复制它们。

0 投票
1 回答
162 浏览

python - 如何只影响真正的 EOL 字符,而不是文本中的“\n”

我有一个类似的字符串:

Lorem ipsum '\n' ipsum lorem

这是新段落。

我想删除 EOL 字符和这 2 段成为一行。但我不想影响 '\n' - 在这种情况下,它是字面上使用的(不是作为换行符)。

如果我只是做:

这将影响它:

“Lorem ipsum '' ipsum lorem这是新的段落。”

我希望它是:

“Lorem ipsum '\n' ipsum lorem这是新段落。”

0 投票
1 回答
1708 浏览

git - git cherry-pick 并通过忽略 EOL 更改进行合并

最近在我们所有的存储库中,我们向所有存储库添加了一个 git 属性文件。这个想法是强制在所有文件中使用 Unix EoL 字符。这在您结帐到新分支的第一天产生了巨大的问题,它开始显示整个文件中的更改。我们只是承诺了。

现在,问题是如果我们从一个分支合并到另一个分支(我们经常这样做)或cherry-pick(我们做更多),合并会再次在所有文件中显示冲突。

如果 git 可以通过首选项忽略行尾或空格更改,那将是理想的。有谁知道 git 是否包含类似的东西或者是否有解决方法?

0 投票
1 回答
1121 浏览

windows - Vim(7.3.3 Windows 64bit):如果没有,则将 ^M 添加到行尾(ff=unix)

我有大约 100,000 多个文件,其中包含部分损坏的数据、混合文本+二进制文件(带有 http 标头的 jpg 图像数据的单个文件),其中一些标头字段具有 dos 样式 ^M^J 行终止,而一些只有 unix 样式 ^J . 当 vim 像这样打开一个文件时,它会将其视为 unix 格式。因此,所有没有 ^M 的标题行都需要添加一个。但这已被证明是非常艰难的。

:1,11s/Cache-Control:.*\zs^M\{0,}$/^M/

不起作用,我尝试了各种变体,甚至使用 \=printf("%s","^M") 作为替换字符串。但结果始终是文件中的一个新的空行。

我能够通过命令添加 ^M 的唯一方法是

:exe "normal A\<c-q>\<c-m>\<Esc>"

好的,一种方法是首先删除任何现有的 ^M,然后按之前添加它。但是有没有更优雅的单一命令解决方案?

(为了避免更多的误解,这里有一个这样的文件的简短示例:

)

编辑/解决方案:关于 100,000 多个文件,这里有一个版本(关于缺少 ^M 仅在缓存控制行上),仅在缺少 ^M 时匹配(因为并非所有文件都被破坏,这将节省大量时间与“更新!”):

:1,11s/^Cache-Control:.\{-}\zs\(^M*$\)\(^M\)\@<!/\^M/i

0 投票
1 回答
3705 浏览

git - 如何避免诸如此类的 git-svn 和 svn CRLF 问题?

我正在使用 git svn,今天我遇到了一些麻烦。

我做了一段git svn clone时间并在我的项目上工作了一段时间。几天后,我已经将我的工作推送到了 svn 遥控器 ( git svn dcommit)。然后我尝试使用 TortoiseSVN 检查项目,看看是否一切正常。不幸的是,所有内容都转换为 Unix 行尾,VC6 无法打开该项目。

所以,我的 git 工作副本是 CRLF,但我的 svn 工作副本是 LF。我假设 git 在git commit或期间对其进行了转换git svn dcommit

core.autocrlf = false如果我为我的 git 工作副本设置,我是否可以假设我可以避免所有这些麻烦?这会迫使 git 不理会换行符吗?为了使 git svn 易于使用而不会给我的同事带来问题,还有什么需要做的吗?

(值得一提的是,我之前在同一台机器上使用过 git svn,没有触及设置,这是第一次发生这种情况。)

0 投票
5 回答
64733 浏览

sublimetext2 - 在 Sublime Text 2 中如何查看回车和换行?

在notepad++中有一个工具栏按钮可以打开/关闭EOL字符的显示,即回车和换行。

Sublime Text 2 可以做类似的事情吗?

0 投票
2 回答
2667 浏览

svn - ^M 在 Windows Linux 上通过 subversion

我们编写了一个补丁来使用 shell 脚本替换数据文件中提供的 ^M 字符;

但是由于我们subversion用于 shell 脚本的源代码控制并且我已经指定了eol-style:native属性;当我们使用UNIX 框时,这^M被替换为新行并变为svn update

作为一种更好的做法,我建议将其替换seddos2unix

这摆脱了^M字符,但作为副作用,它也替换了 source_file 中一些不应该转换的有意义的数据。

所以我们想要一种方法来通过一个不应提及 ^M 字符的 shell 脚本从数据文件中删除 ^M 字符,以便它可以通过颠覆移植到 Windows 和 Linux 机器上?

摆脱这些问题的最佳做法是什么?

0 投票
1 回答
393 浏览

svn - 如何从 svn:eol-style native 中转义 ^M

我们eol-style:native在我们的 subversion 存储库中为 shell 脚本指定了属性;这消除了^M在 Windows 上编辑文件并在 UNIX 机器上执行时包含的字符。

但是最近我们遇到了一个问题:

一个 shell 脚本编写了以下语句:

替换数据文件中的 ^M 个字符。但是当脚本在 subversion 中签入并在 unix 框上更新时,语句变为:

真正的问题

我需要一种方法将 ^M 字符放入 shell 脚本中,并且eol-style:native属性已经存在。我不希望这个特定的 ^M 字符在转换中丢失。可能吗?

0 投票
3 回答
255 浏览

regex - 多平台脚本 perl 或 awk

我正在尝试匹配以下格式的记录:

必须使用 awk 或 perl。我正在使用 cygwin 并编写了以下代码,该代码有效并匹配上述两个条目:

但是,如果我尝试将这个正则表达式修改为更具体,则输出什么都不是:

第一个:匹配记录,然后是最后一个反斜杠,然后匹配换行符:

第二:在没有反斜杠的情况下记录后立即匹配新行:

所以我决定把script改写成perl,希望perl可以处理反斜杠和行尾符号。为此,我以这种方式使用 a2p:

这个生成的 perl 脚本也匹配这两个条目,但是如果我尝试将此脚本修改为更具体,我会收到以下错误:

第一个:

第二:

第三:

我做错了什么?我的问题还指出,如果有人需要在多个平台(aix、solaris、linux)上使用脚本而不是使用 perl 应该是处理(非)GNU utils 和各种(g|n)awk 版本等更好的方法。问候

0 投票
3 回答
272 浏览

java - 在 Java Socket .readLine() 中处理一个或多个单词

我正在构建一个应用程序,其中我有一个服务器和一个相互通信的客户端 -通过远程登录. (通过插座)。服务器程序正在监视一罐气体,并通过套接字将温度水平和压力水平发送到接受的客户端。

当我在 telnet 中写东西时,我已经设法让客户端和服务器相互通信,但是...... 我需要一些帮助来处理我发送的数据

我制作了一个登录脚本来确定用户是否是有效用户。所以我可以写两个词,如“myname”“space”“mypassword”,我得到一个绿灯并返回一个有效的用户。但是当我只写一个字,然后按回车键时,它给了我: Exeption in thread... java.lang.Array.IndexOutOfBoundsExeption EXEPT for when I write exit or logout!

(所有用户都在脚本中硬编码,以便于测试。(登录脚本本身工作正常,当我写错时返回有效用户=假。)这是我的代码。添加了一些伪代码,因为我我不是 100% 确定要做什么……;)

客户端应用程序对每个命令都有一个按钮,例如:

“每隔 n 秒向我发送一次数据”,或“每隔 n 秒向我发送一批数据。如果命令等于退出,或注销 -> 中断操作....

也许我现在有点困惑,但我认为我需要将所有数据放入一个数组中,并检查

和...

感谢您的帮助和/或提示!:)