这是vimscript x.vim:
python << endpy
import vim
import time
import os
cb = vim.current.buffer
bufferString = '\n'.join(cb[:])
with open(cb.name, "r") as currentFile:
fileString = currentFile.read()
print bufferString
print "================="
print fileString
if bufferString != fileString:
print "File changed!"
else:
print "Nothing changed!"
endpy
在vim中打开脚本并输入:so %
,它打印出文件和缓冲区,根据python,它们是不同的,但通过目测,你可以看到它们明显相等。为什么呢?
答案 0 :(得分:3)
您阅读的文件可能在最后一行的末尾有换行符。但是,从vim
获取行并使用\n
加入行不会在最后一行的末尾添加换行符。