使用 kB、MB、GB、... 和 kiB、MiB、GiB 的 ISO 前缀格式化整数
我正在寻找在大小指示模式下在模式行上打印文件大小的功能。我在源代码中搜索了尺寸指示模式,但找不到它的代码引用。那么打印的函数在哪里呢 22k
当文件大约 22 KB 大时为
?之间有什么区别 - 千字节 (kB)、1000 字节和 - kibibytes (KiB),1024 字节,定义于
Shouldn't Emacs support both?
这当然不难写,但为什么要重新发明轮子呢?
I looking for the function that prints file size on the mode-line in size-indication-mode. I have searched for size-indication-mode in the source but cannot find a code-references to it. So where is the function that prints for example
22k
when file is approximately 22 kilobytes big?
What about difference between
- kilobytes (kB), 1000 bytes, and
- kibibytes (KiB), 1024 bytes, as defined at
Shouldn't Emacs support both?
This is of course not that hard to write but why reinvent the wheel?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我注意到 emacs dev (bzr) 只是定义了一个新函数
file-size- human-sensitive()
。它正是我所要求的。一些 emacs 开发人员一定听到了我的呼吁:)
I noticed that emacs dev (bzr) just go a new function,
file-size-human-readable()
defined. It does just what I asked for.Some emacs developer must have heard my call :)
请参阅 Chf
format-mode-line
RET 和 Ch v模式行格式
RET。启用大小指示模式只会导致将
of %I
添加到缓冲区的本地模式行格式字符串中,而 C 函数会处理其余的事情。您可以使用
%i
来查看缓冲区大小(以字节为单位)。如果您想要可以提供任意值的东西,Emacs 至少提供了一个 elisp 函数(在
ls-lisp
模块中):Ch< kbd>f
ls-lisp-format-file-size
RETSee C-hf
format-mode-line
RET, and C-hvmode-line-format
RET.Enabling
size-indication-mode
simply causesof %I
to be added into the buffer's local mode-line-format string, and the C function takes care of the rest.You can use
%i
instead to see the buffer size in bytes.If you want something to which you can supply an arbitrary value, there's at least one elisp function along these lines provided with Emacs (in the
ls-lisp
module):C-hf
ls-lisp-format-file-size
RET这是我使用的功能。
我在缓冲区菜单的大小列中使用它。
Here's the function I use.
I use it in the size column of the buffer menu.
好吧,我自己想出了一个解决方案。应接近
size-induction-mode
提供的内容Ok, I hacked up a solution myself. Should be close to what
size-indication-mode
provides