From 9f548489f878dfd114d8d2ae6a45886dbffbbebe Mon Sep 17 00:00:00 2001 From: rrueger Date: Fri, 31 Jul 2020 16:43:42 +0200 Subject: Do not use regex to parse command output for buffer statistics --- plugin/statusryne.vim | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'plugin') diff --git a/plugin/statusryne.vim b/plugin/statusryne.vim index 6e84966..4c915fc 100644 --- a/plugin/statusryne.vim +++ b/plugin/statusryne.vim @@ -145,20 +145,15 @@ function! FileStats() " endfor " Using system utils - let size_cmd = 'du -sh ' . expand('%:p') + let size_cmd = 'du -shL ' . expand('%:p') . ' | cut -f1' + let word_count_cmd = 'wc -w < ' . expand('%:p') + let char_count_cmd = 'wc -m < ' . expand('%:p') + let size = system(size_cmd) - " Parse. - let size_pattern = '^\(\S*\).*$' - let size = substitute(size, size_pattern, '\1', '') - - " Word and character count. - let counts_cmd = 'wc -mw ' . expand('%:p') - let counts = system(counts_cmd) - " Parse. - let counts_pattern = '^\s*\([0-9]*\)\s*\([0-9]*\).*$' - let counts = substitute(counts, counts_pattern, '\1(w) \2(c)', '') - - let stats = counts . ' ' . size + let word_count = system(word_count_cmd) . '(w) ' + let char_count = system(char_count_cmd) . '(c) ' + + let stats = word_count . char_cound . size endif -- cgit v1.2.3-70-g09d2