如何让 Windows 版 Vim 更像 Unix

如何让 Windows 版 Vim 更像 Unix

Firefox 3.0 及更早版本使用 CVS 作为版本控制系统,如果您仍在使用 cygwin 工具,那么您可以选择要使用的行尾,例如,您可以使用 MS-DOS 编辑器。然而,那时大多数人都在使用 MSYS(方便地分布在mozillabuild包含构建所需的其他组件的软件包)仅支持 Unix 行尾。这不是问题,因为它随 Vim(我认为是 5.8.9)一起提供,Vim 被配置为默认使用 Unix 行尾,但也会打开带有 DOS 行尾的文件,尽管它会警告您使用了“错误”的行尾。当然,如果您像我一样也习惯在 Unix 上使用 Vim,那么 MSYS Vim 看起来大致相同。

现在 Firefox 已经切换到 Mercurial,即使使用 Windows 版本的 Mercurial 签出,所有源文件也始终具有 Unix 行尾。

现在最新的 mozillabuild 软件包不随 Vim 的 MSYS 版本一起提供,而是随 Vim for Windows (7.2) 一起提供,而后者与 Unix 工具链的集成效果并不好。我知道我可以set fileformat=unix让 Vim 默认创建带有 Unix 行尾的文件(这也会影响 Firefox 开发人员;有时我会看到新文件以 DOS 行尾签入,因为这是 Vim for Windows 默认创建它们的方式),但能否让它在我打开带有 DOS 行尾的文件时发出警告?目前,每当我打开带有 Unix 行尾的文件时,它都会发出警告,而且总是如此。示例:"~\.vimrc" [unix] 9L, 155C

答案1

你可以通过设置 'fileformats' 选项让 Vim 默认使用 Unix 行尾,同时仍然支持 DOS 行尾:

:set fileformats=unix,dos
:set fileformat=unix

第二行可能不是必需的,但为了安全起见,我将其包含在我的 _vimrc 中。(编辑:在 Windows 下这是必需的。)

至于你关于“警告”的问题,我不认为你可以改变这种行为。“ :help file-formats”包含以下段落:

If the 'fileformat' option is set to "dos" on non-MS-DOS systems the message
"[dos format]" is shown to remind you that something unusual is happening.  On
MS-DOS systems you get the message "[unix format]" if 'fileformat' is set to
"unix".  On all systems but the Macintosh you get the message "[mac format]"
if 'fileformat' is set to "mac".

答案2

您可以在 ~/.vimrc 中使用以下内容:

:set shm=x

这将变为[dos format][dos][unix format]变为[unix]

它至少会占用状态栏更少的空间。

相关内容