如何强制vim以单个换行符(LF)结束所有行

Mar*_*opa 7 vim gvim text-formatting

正如标题所说,我需要强制 vim(在我的情况下为gVim)以单个换行符(LF)结束所有行。我怎样才能做到这一点?

我正在尝试遵循 PHP 编码的标准,特别是http://framework.zend.com/manual/en/coding-standard.php-file-formatting.html#coding-standard.php-file-formatting.line -终止

Hep*_*ite 8

简短的回答是在 Vim 中打开文件,然后键入“ :set fileformat=unix”然后写入文件。从那时起,Vim 应该将文件视为 Unix 文件格式,并且只使用换行符而不是回车+换行符。

长的答案是这有时不起作用,因为当您在 Vim 中打开文件时,您会在大多数行的末尾看到实际的^M字符。在这种情况下,可能有两个原因:

  1. 最有可能的是,它最初保存为 DOS 文件格式,然后被另一个编辑器“损坏”,该编辑器认为它可以将其视为 Unix 格式而无需转换,并留下了几行没有 DOS 行结尾的行。在这种情况下,你应该做一些像:%s/\%x0d$//gthen write这样的事情。
  2. 该文件是一种正确的 DOS 文件格式,但 Vim 无法识别这一事实。这可能意味着您的 'fileformats' 选项设置不正确。要了解更多信息,请参阅“ :help 'fileformats'”(单引号是 help 命令的一部分)。

最后,如果您在 Windows 机器上使用 Vim,您可能需要将提到的 'fileformats' 选项更改为“unix,dos”,~/_vimrc而不是在 DOS/Windows 环境中设置为默认的“dos,unix”。这将导致 Vim 以 Unix 格式而不是 DOS 格式创建新的缓冲区。(同样,请参阅帮助以获取详细信息。)