在 vim 中,set ff=unix 命令的详细解释如下:ff 是 fileformat 的缩写,用于设置文件的换行符格式。vim 支持三种文件格式:unix: 使用 LF(Line Feed,\n)作为换行符dos: 使用 CRLF(Carriage...
在 vim 中,set ff=unix 命令的详细解释如下:ff 是 fileformat 的缩写,用于设置文件的换行符格式。vim 支持三种文件格式:unix: 使用 LF(Line Feed,\n)作为换行符dos: 使用 CRLF(Carriage Return + Line Feed,\r\n)作为换行符mac: 使用 CR(Carriage Return,\r)作为换行符查看当前文件格式的方法:
完整的文件格式转换步骤:
:set ff=unix # 设置为 unix 格式
:wq # 保存并退出
为什么要使用 unix 格式:
Unix/Linux 系统默认使用 LF 换行符
Windows 默认使用 CRLF 换行符
在 Linux 系统中执行包含 CRLF 的脚本可能会出现
^M: bad interpreter 错误
Unix 格式的文件在 Windows 中也能正常运行
在 vim 中可以看到文件格式:
:set ff? # 显示当前文件格式
:set ffs? # 显示vim支持的文件格式列表
也可以在打开文件时就指定格式:
在
.vimrc 配置文件中可以设置默认格式:
set fileformat=unix
set fileformats=unix,dos
这就是为什么在我们的脚本出现问题时,使用 set ff=unix 可以解决的原因 - 它将文件的换行符从 Windows 格式(CRLF)转换为 Unix 格式(LF),使脚本能够在 Linux 系统中正确执行。