vim移除自动添加的换行符

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. 引言

在使用vim编辑文件时,默认情况下,vim会在文件末尾自动添加换行符(endofline)。如果需要移除文件末尾自动添加的换行符,就需要对文件重新编辑设置一下。

2. 移除换行符

使用vim编辑test.txt,文件内容为abc,保存。测试如下:

1
2
3
4
5
6
7
# 统计文件行数
root@ec18cf9b6d75:/workspace# wc -l test.txt
1 test.txt

# 统计文件字符数
root@ec18cf9b6d75:/workspace# wc -m test.txt
4 test.txt

移除文件的自动换行符的vim命令如下:

1
2
3
4
5
6
7
:set binary
:set noendofline
:wq

# or

:set bin noeol

重新进行测试:

1
2
3
4
root@ec18cf9b6d75:/workspace# wc -l test.txt
0 test.txt
root@ec18cf9b6d75:/workspace# wc -m test.txt
3 test.txt

3. 测试结果解析

wc -m命令在统计文件的字符个数时会统计换行符,因此文件有换行符时字符统计数量为4,没有时为3。

wc -l命令统计文件的行数时是统计换行符的个数,因此文件有换行符时行数统计数量为1,没有时为0。

References

  1. https://stackoverflow.com/questions/23488655/how-does-the-wc-c-in-linux-work
如果有收获,可以请我喝杯咖啡!