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

时间:2013-01-27 16:58:38

标签: 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,请看我的意思?它将输出最大的尺寸,然后输出其后的大小的剩余部分。这很难解释。

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

感谢您的帮助!任何它是值得赞赏的。 :)

1 个答案:

答案 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 / Kls中使用的常用快捷方式。 B)或MB / KB