问题标签 [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 投票
8 回答
61374 浏览

string - \n 和 \r\n 有什么区别?

它们都是“新线”的意思,但是什么时候使用一个而不是另一个?

0 投票
5 回答
54340 浏览

git - git diff - 显示行尾更改?

我的编辑器正在更改我的源文件的行尾。当我这样做时git diff,我看到同一条线两次——一次-和一次+——没有明显的区别。

我如何才能git diff向我展示这种变化实际上是什么?

0 投票
1 回答
244 浏览

git - 如何设置 git 来签出一些文件 crlf,其他文件 lf?

我有一个 git 存储库,其中包含(除其他外)*.wse文本文件和*.sh文本文件。如何设置 git 以始终​​检出*.wse带有CRLF行尾的*.sh文件和带有行尾的文件LF

0 投票
2 回答
6133 浏览

java - JSch sftp 传输剥离窗口行尾

我想我理解常规 FTP 传输中 ASCII 模式和二进制模式之间的区别——在二进制模式下,文件被精确复制,而在 ASCII 模式下,客户端可以修改行尾(从 Windows -> UNIX 中删除回车或添加它在另一个方向)。但是,我认为 SFTP 协议只支持 Binary 模式样式传输;源文件不会被修改。

但是,当使用 JSch 库将文件从 Windows 复制到 UNIX 时,Windows 样式的行尾会被剥离。这是有问题的,因为这些文件是由其他人使用各种方法检索的,用于 Windows 机器,我不能保证他们的客户会在每次换行之前重新添加回车。

我能做些什么来确保 JSch 准确地传输文件吗?令人沮丧的是,它缺乏文档,所以我不确定它是否有一些参数,或者我可以指定一些额外的 SSH 属性来确保逐字传输。当 ASCII 模式样式修改不是 SFTP 标准的一部分时,为什么会发生这种情况?

0 投票
3 回答
778 浏览

windows - Emacs 在进程缓冲区中显示 ^M

目前,我有一个进程缓冲区,它是utf-8-auto(emacs modeline 将缓冲区报告为utf-8-auto-dos),带有CRLF样式换行符。当我通过 a 将多行文本写入缓冲区时,process-send-region或者process-send-string每行都以^M.

使这个问题变得奇怪的是,直接从进程写入进程缓冲区的文本不包含^M's.

源文本的来源似乎没有任何区别,事实上,即使是标记和发送的多行区域,已经出现在进程缓冲区(不包含^M)中,在发送时也会有它们。

请注意,process-send-region 的源文本将始终来自 Emacs 缓冲区,process-send-string,而多行将从 Windows 剪贴板界面到 killring,或者再次从 Emacs 缓冲区到 killring。 )

我还应该补充一点,缓冲区的传入文本是由一个after-change-functions钩子解析的(根据输入进行一些着色)所以最后的手段我会regexp-replace-in-string在这个传入的文本上做一个额外的作为钩子函数的一部分,我想避免这种情况,因为它似乎是错误的,但如果没有其他方法,我会将它添加为一个 hacky 解决方案。

附录

我更新了缓冲区的编码设置和要使用的进程,而utf-8-dos不是' 消失了。utf-8-auto^M

所以在我的应用程序的缓冲区设置部分,我做了......

然后将其简化为...

一切正常。

0 投票
2 回答
566 浏览

python - 行尾和对文本文件的读写

我正在编写一个小脚本,需要在 Windows 和 Linux 甚至 Mac 上读写文本文件。该脚本将被所有可能所有这些平台(当然是 Windows)上的用户使用,并且可以互换使用 - 因此X在 Windows 上写入文件的用户可以使用该脚本在 Linux 上读取文件。

我应该采取什么预防措施,或者我应该如何实现能够跨各种平台处理行尾的代码?(读写)

或者这不是问题,Python 处理一切?

0 投票
1 回答
1331 浏览

asp.net - Visual Studio 将缩进作为空格插入到 html 输出

我正在将 Visual Studio 2010 用于 MVC 网站项目。我有一个大问题,不知道如何解决它。当我在我的 aspx 和 ascx 文件中的 firebug 缩进中查看 html 的输出时,在相同的位置输出为空格。我认为它与文件的行尾有关,但我不确定如何修复它们。我正在添加一些关于问题的图片。替代文字

替代文字

替代文字

当我添加断点时,它还会为空格添加红色背景(这是问题)我尝试在点击 ctrl+kd 后删除空格同样的问题发生。如果我删除所有缩进使第 1 页没有空格的行输出很好,但这不是解决方案。

0 投票
3 回答
3016 浏览

windows - Vim:Mac 与 Linux ^M 问题

我使用 Vim 和 GIT 在 Linux/Ubuntu 机器上开发我的项目。以前我用的是windows,也就是说行尾是DOS格式的。现在搬到 Linux 之后,我总是在行尾看到 ^M 令人困惑/烦人的字符。这里有些人:

如何将 ^M 换行符转换为在 vim 中打开的文件中的“正常”换行符?

建议我应该进行查找/替换或使用 dos2unix 之类的工具。这些是很好的建议,但是对于版本控制的项目,这意味着我必须在更改后为文件添加不必要的提交,无论如何这是一项艰巨的任务,不值得花时间在上面。所以:

有没有办法让 Vim 容忍这个?也就是说,如果文件是 DOS 行结束的,它会保持这样,并使用它的格式来换行,等等。

0 投票
2 回答
1865 浏览

vim - 在 Linux 中读取 DOS/Windows 文本文件

众所周知,DOS/Windows 文件中的行尾与 Unix/Linux 不同,所以每当我打开使用 Windows 创建的文件时,每行后面都会看到数百个 ^M。许多人建议使用以下方法解决此问题:

我试过这个,但它不起作用,因为据我所知,它告诉 Vim 如何“保存”文件,而不是如何“读取”文件。我想要的是保持行尾不变,无论是 Linux、Windows 还是 MAC,正确读取它们,并在编辑后使用相同的格式保存文件。

任何的想法?

0 投票
1 回答
301 浏览

django - django - 在进行 max_length 表单验证时处理 Windows 行尾

因为 windows 行尾实际上是两个字符 ( \r\n),所以 max_length 将它们视为两个字符。我希望他们只被视为一个角色。

处理这个问题的最佳方法是什么?我认为最好转换行尾,但是在这个过程中我会在哪里做呢?