![在 vim 编辑器中显示当前文件大小](https://linux22.com/image/1475479/%E5%9C%A8%20vim%20%E7%BC%96%E8%BE%91%E5%99%A8%E4%B8%AD%E6%98%BE%E7%A4%BA%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E5%A4%A7%E5%B0%8F.png)
我大量使用 Vim 来编辑和处理我的文件,现在我开始打开大文件,直接从 VIM 本身查看文件大小会很有用。
有没有办法在 vim 中显示当前文件大小?
目前我正在做的事情:
:!ls -lah %
是否有内部方式来显示当前文件大小?
答案1
点击g CTRL-g
即可在状态行中查看当前文件的一些统计信息,包括文件大小。
答案2
是的,有一种内部方法可以显示当前文件大小。
一个简单的方法如下:
:echo getfsize(expand(@%))
或者更详细一点,如下所示:
:echo 'Size of ' @% ' file is ' getfsize(expand(@%)) ' bytes'
或者,您可以将其放入函数中并分配一个键绑定(映射)以方便访问。如下所示:将以下代码放入您的 vimrc 文件中:
function! GetFilesize(file)
let size = getfsize(expand(a:file))
echo 'Size of ' a:file ' is ' size ' bytes'
endfunction
map <leader>s :call GetFilesize(@%)<CR>
在控制模式下,按 \s(假设 <leader> 设置为反斜杠)。
答案3
添加到在状态行中
.vimrc
以人类可读的格式显示文件大小(例如):11.8KB
set statusline+=%{FileSize(line2byte('$')+len(getline('$')))}
function! FileSize(bytes)
let l:bytes = a:bytes | let l:sizes = ['B', 'KB', 'MB', 'GB'] | let l:i = 0
while l:bytes >= 1024 | let l:bytes = l:bytes / 1024.0 | let l:i += 1 | endwhile
return l:bytes > 0 ? printf(' %.1f%s ', l:bytes, l:sizes[l:i]) : ''
endfunction