VimL:从输出文件大小的函数中获取额外的KB

gre*_*uan 0 vim vim-plugin

现在我正在为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,看看我的意思?它将输出最大的尺寸,然后输出其后的大小的剩余部分.很难解释.

那么我如何修改当前函数以这种方式输出大小?

谢谢你的帮助!任何它是值得赞赏的.:)

ZyX*_*ZyX 5

谁需要这个?我怀疑它对任何人都很方便(特别是当有1MB + 3KB的小余数时),使用1.367MB​​要好得多.我在你的代码中看到你没有MB(1000*1000 B)或MiB(1024*1024 B),1000*1024字节非常奇怪.另外,不要使用getfsize,你经常在插件中看到的任何非文件缓冲区都是错误的.使用line2byte(line('$')+1)-1.

对于1.367MB​​,您可以humanize_bytes在VimL中重写功能,如果您可以根据+float功能进行操作.

使用整数运算可以得到余数

let kbytes_remainder = kbytes % 1000
Run Code Online (Sandbox Code Playgroud)

并做更改为MiB/ KiB(M/ K是中使用的常用快捷ls. B)或MB/ KB.