Add file_size segment for vim

Closes #118.
This commit is contained in:
Kim Silkebækken 2013-01-24 12:35:58 +01:00
parent 5d5841c1fa
commit cefa7ef5fe
2 changed files with 17 additions and 1 deletions

View File

@ -64,6 +64,7 @@
"branch:divider": { "fg": "gray7", "bg": "gray4" },
"file_directory": { "fg": "gray9", "bg": "gray4" },
"file_name": { "fg": "white", "bg": "gray4", "attr": ["bold"] },
"file_size": { "fg": "gray8", "bg": "gray2" },
"file_name_no_file": { "fg": "gray9", "bg": "gray4", "attr": ["bold"] },
"file_name_empty": { "fg": "gray9", "bg": "gray4" },
"file_format": { "fg": "gray8", "bg": "gray2" },

View File

@ -6,7 +6,7 @@ import os
import vim
from powerline.bindings.vim import vim_get_func
from powerline.lib import memoize
from powerline.lib import memoize, humanize_bytes
from powerline.lib.vcs import guess
vim_funcs = {
@ -15,6 +15,7 @@ vim_funcs = {
'expand': vim_get_func('expand'),
'line': vim_get_func('line', rettype=int),
'mode': vim_get_func('mode'),
'getfsize': vim_get_func('getfsize', rettype=int),
}
vim_modes = {
@ -101,6 +102,20 @@ def file_name(display_no_file=False, no_file_text='[No file]'):
return file_name.decode('utf-8')
@memoize(2)
def file_size(suffix='B', binary_prefix=False):
'''Return file size.
Returns None if the file isn't saved, or if the size is too
big to fit in a number.
'''
file_name = vim_funcs['expand']('%')
file_size = vim_funcs['getfsize'](file_name)
if file_size < 0:
return None
return humanize_bytes(file_size, suffix, binary_prefix)
def file_format():
'''Return file format (i.e. line ending type).