如何在Vim中可视化并删除文件末尾的换行符
如何在Vim/Neovim中查看并编辑文件末尾的换行符?
一、判断文件末尾是否有换行符
方法1:显示不可见字符
在编辑器里执行命令:
:set list
默认情况下,行尾的换行符会显示为$。用这个方法查看你创建的两个文件:
file-with-newline会显示test$file-without-newline会显示test
要是只想看行尾换行符,不想显示其他不可见字符(比如制表符),可以自定义显示规则:
:set listchars=eol:$
方法2:查看文件字节数
执行命令直接查看当前文件的字节数:
:!wc -c %
file-with-newline是5字节("test"加换行符),file-without-newline是4字节,对比就能快速判断。
二、删除末尾的换行符
方法1:二进制模式编辑
以二进制模式打开文件,此时换行符会被当作普通字符处理:
nvim -b file-with-newline
光标移到行尾(按$),按x就能删掉换行符,保存退出即可。
方法2:全局替换命令
执行精准替换,只删除最后一行的换行符:
:%s/\n$//
方法3:合并行命令
光标停在最后一行,执行gJ(大写J),这个命令会把当前行和虚拟的下一行合并,相当于删除了当前行的换行符。
验证修改
改完之后用set list或者字节数命令检查,确认末尾换行符已经被移除。
内容的提问来源于stack exchange,提问作者user2797452
相关产品推荐
相关产品推荐

