现在我正在为Vim创建各种插件,这意味着只需将各种实用功能放入您的状态行,这里是链接:https://github.com/Greduan/vim-usefulstatusline
现在我有这个功能:https://github.com/Greduan/vim-usefulstatusline/blob/master/autoload/usefulstatusline_filesize.vim
它只是将文件大小从字节输出到兆字节。现在,目前如果文件大小达到1MB,例如它输出1MB
,这很好,但我也希望它能输出它所具有的额外字节数或KB数。
从示例中,不是输出1MB
而是输出1MB-367KB
,请看我的意思?它将输出最大的尺寸,然后输出其后的大小的剩余部分。这很难解释。
那么我如何修改当前函数以这种方式输出大小?
感谢您的帮助!任何它是值得赞赏的。 :)
答案 0 :(得分:5)
谁需要这个?我怀疑它对任何人都很方便(特别是当有1MB + 3KB的小余数时),使用1.367MB要好得多。我在你的代码中看到你没有MB(1000 * 1000 B)或MiB(1024 * 1024 B),1000 * 1024字节非常奇怪。另外,不要使用getfsize
,这对于你经常在插件中看到的任何非文件缓冲区都是错误的。使用line2byte(line('$')+1)-1
。
对于1.367MB,您可以在VimL中重写humanize_bytes
功能,如果您可以使用+float
功能。
使用整数运算,您可以使用
获取余数let kbytes_remainder = kbytes % 1000
更改为MiB
/ KiB
M
/ K
是ls
中使用的常用快捷方式。不 B
)或MB
/ KB
。