使用vim创建文件时是否会自动添加隐藏的换行符\n?
你观察到的末尾\n是Vim默认自动追加的换行符,属于编辑器的标准默认行为,具体原因和调整方法如下:
原因说明
POSIX规范对文本文件的定义要求:文本文件的每一行都需要以<换行>字符结尾,包含最后一行。Vim默认遵循该规范,保存文件时如果检测到文件末尾没有换行符,就会自动补充。
你输入12后没有主动输入换行,Vim保存时自动追加了1字节的\n,所以最终文件大小为3字节,base64编码结果对应12\n的MTIK而非12的MTI=。

调整默认行为的方法
如果你不需要Vim自动补充末尾换行,可按需选择配置:
- 单次生效:当前文件保存前,在Vim命令模式执行
:set nofixendofline后再保存即可 - 永久生效:将
set nofixendofline写入Vim配置文件(默认路径为~/.vimrc),后续所有编辑操作都会遵循该规则
快速生成无末尾换行文件的方法
如果仅需要生成内容为12、大小为2字节的文件,不需要进入Vim编辑,直接在终端执行命令即可:
echo -n "12" > 目标文件名
其中-n参数会取消echo命令默认追加的末尾换行。
内容的提问来源于stack exchange,提问作者zyLoong
相关产品推荐
相关产品推荐

