0

现在我正在为 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,明白我的意思吗?它会输出最大的尺寸,然后是它后面的剩余尺寸。很难解释。

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

谢谢你的帮助!任何一个都值得赞赏。:)

4

1 回答 1

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

并更改为MiB/ KiBM/是. withoutK中使用的常用快捷方式)或/ 。ls BMBKB

于 2013-01-27T17:15:15.133 回答