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ます。

humanize_bytes1.367MB​​の場合、機能に応じて問題がなければ、VimLで機能を書き換えることができ+floatます。

整数演算を使用すると、剰余を取得できます

let kbytes_remainder = kbytes % 1000

MiBそして、 / KiB( M/は. WithoutKで使用される一般的なショートカットです) または/のいずれかに変更してください。ls BMBKB

于 2013-01-27T17:15:15.133 に答える