问题标签 [line-endings]

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 投票
2 回答
3577 浏览

c++ - 混合输入行结尾时的 std::getline 替代

我正在尝试从 a 中读取行,std::istream但输入可能包含'\r' 和/或 '\n',所以std::getline没有用。

很抱歉大喊大叫,但这似乎需要强调......

输入可能包含换行符类型两者

有没有标准的方法来做到这一点?目前我正在尝试

...但这会跳过空格。哦!std::noskipws-需要更多的摆弄,现在它很糟糕。

当然必须有更好的方法?!?

0 投票
1 回答
2406 浏览

windows - 如何配置 Compass 在 Windows 上生成带有 Unix 行结尾的文件?

我刚刚使用 Ruby 1.9.2 在 Windows 7 上安装了 Compass 0.11.5。

我的开发环境设置为对所有文件使用 Unix 行尾。

我创建了一个初始的 sass-test 项目,并注意到它创建的所有文件都有 Windows 行结尾。我将现有的 .css 文件从另一个项目(带有 unix 行结尾)移动到 sass 文件夹中,并将扩展名更改为 .scss。我运行“compass compile”命令为这个新文件生成 .css 文件,并且它创建的 .css 文件具有 Windows 行结尾。

我在 Compass 文档中找不到任何配置选项来强制 Compass 生成带有 Unix 行结尾的文件。

是否可以将 Compass 配置为在 Windows 上生成带有 Unix 行结尾的文件?

更新

经过进一步调查,有一个选项可以将配置选项从 Compass 传递给 Sass。

Sass 有一个生成 unix 行尾的选项:

:unix_newlines
如果为 true,则在写入文件时使用 Unix 样式的换行符。仅在 Windows 上有意义,并且仅在 Sass 编写文件时(在 Rack、Rails 或 Merb 中,直接使用 Sass::Plugin 或使用命令行可执行文件时)有意义。

看来,将以下行添加到 sass-test 项目的 config.rb 文件应该可以解决问题:

但是,它对生成的 .css 文件没有任何影响 - 它们仍然具有 Windows 行结尾。

0 投票
4 回答
14028 浏览

php - 如何将文本文件的行尾从 DOS 转换为 Unix?

我将此 php 代码保存在文本文件中,我想将此文本文件转换为 Unix 行结尾。如何?

0 投票
4 回答
251 浏览

vim - 是否可以在 Vim _gvimrc 文件中输入命令来设置默认编码和行尾?

是否可以在文件中输入命令_gvimrc来设置默认编码和行尾?

我正在使用 Windows 机器,但我想使用 UTF-8 编码(无 BOM)和标准 Unix 行尾(\n)创建和编辑文件。

我可以设置 Vim 来创建具有这些规范的文件吗?

0 投票
6 回答
95089 浏览

git - 转换整个目录树的行尾(Git)

以下情况:

我正在使用运行 OS X 的 Mac 并最近加入了一个项目,该项目的成员到目前为止都使用 Windows。我的首要任务之一是在 Git 存储库中设置代码库,因此我从 FTP 中提取目录树并尝试将其检入我在本地准备的 Git 存储库中。当试图这样做时,我得到的只是这个

由于这会影响“博客”文件夹下的所有文件,我正在寻找一种方法来方便地将树中的所有文件转换为 Unix 行尾。是否有开箱即用的工具或者我自己编写脚本?

作为参考,我的 Git 配置关于行尾:

0 投票
3 回答
243 浏览

perl - cygwin 似乎正在吞噬我的回车

我有一个 perl 脚本,可以从远程服务器获取一些文件,我希望能够代表进度。我尝试这样做的方式是这样的:

但是,cygwin 似乎吞下了回车,直到最后一个 print 语句才打印任何内容。我对此表示怀疑,因为脚本运行得太快了,因为当我将 \r 更改为 \n 时,我可以看到它们打印出来很慢。

有谁知道为什么它没有按应有的方式工作?

0 投票
3 回答
14983 浏览

git - 如何使用 diff 正确创建 .patch 文件并将其应用到单个 .cpp 文件?

我正在尝试使用git diff将.patch文件应用于单个.cpp文件。

这些是我的文件:old.cppnew.cppfix.patch

old.cpp是未修改的原始源代码,new.cpp是修改后的源代码,而fix.patch是我要创建的补丁,当应用于old.cpp时,应该将 new.cpp 的更改应用到它。old.cpp和new.cppWindows (CR LF)行结尾,两个文件都是918 KB大,源代码中只修改了一行。

我通过将两个文件old.cppnew.cpp放在同一个文件夹中并使用带有命令的Git Bash提示符来创建补丁:

fix.patch文件成功出现,但是当我实际测试它并使用Git Bash将其应用于 old.cpp,键入:

该补丁已成功应用,但old.cpp 的大小从918 KB减少894 KB在对kdiff3进行一些研究后,我发现我新创建的 fix.patch文件带有Unix (LF)行尾,并且在将其应用于old.cpp后,修补后的old.cpp也采用了Unix (LF)行尾。我想这也是old.cpp文件大小减小的原因。

我的问题是我应该在git中使用什么命令,或者我还需要做什么才能使我新创建的 fix.patch文件保留Windows (CR LF)行结尾,并且在将补丁应用到old.cpp后,新修补的old.cpp文件也带有Windows (CR LF)行结尾,文件大小并没有大幅减少。我在这里收到了一个建议来代替,但我不知道具体要输入什么,所以它按照我想要的方式工作,适合我的情况。:(git applypatchgit apply

我正在使用Windows XP SP2Git 1.7.6Git Extensions 2.24Microsoft Visual C++ 2010

0 投票
1 回答
1219 浏览

visual-studio - 行尾一致时行尾不一致警告

我在 Visual Studio 中打开一个自动生成的文件来检查它,Visual Studio 告诉我行尾不一致。我知道 LF 和 CRLF 之间的区别,所以我想我会尝试对生成代码进行一些小改动,以根据平台使用正确的换行符。

我告诉 Visual Studio 不要更改它,然后关闭文件。我用 Python 打开它,用这段代码查看每一行。

我看一下输出,每一行(最后一行除外)都以'\r\n'结尾。最后一行没有换行符,所以它只包含文本。

我也用 Emacs 打开文件,它不会自动检测到使用 DOS 模式,并在每一行显示 ^M 字符。

当我看到每一行都使用相同的行尾时,为什么文件的行尾“不一致”?

0 投票
3 回答
2728 浏览

text - 如何查看文件中使用了哪些行结束符?

这已经被问了十几次了,但答案总是“看看 vi 说它是什么类型的文件并从中推断”或“通过 cat 运行它并查看是否呈现了 windows 行结尾”或“运行它通过egrep 查看 egrep 是否找到了一种或另一种行尾的实例”。

有没有一种相当简单的方法可以直接查看使用了哪些字符?理想情况下,我只会在 cat 上有一个标志,以人类可读的表示形式吐出转义字符,而不是将它们渲染为空格。

0 投票
4 回答
1572 浏览

php - 我需要找到所有包含奇数 ^M 不可见字符的文件的方法

我知道这些 PHP 文件存在的事实。我可以在 VIM 中打开它们并查看有问题的字符。

我在 stackoverflow 上找到了几个链接,这些链接建议了对此的补救措施,但它们都不能正常工作。我知道几个文件不包含 ^M 字符(CRLF 行结尾)的事实,但是我不断收到误报。

返回误报。

什么都不返回。

等等……等等……

编辑:是的,我在有问题的目录中执行这些行。