From 5ffd36adcb5e2aa352609a3d4e005b3e99173442 Mon Sep 17 00:00:00 2001 From: Max Christian Pohle Date: Sun, 13 Oct 2019 13:47:17 +0200 Subject: Refactored 'splash' a lot & minor fixes in statusline --- plugin/max-splash.vim | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) (limited to 'plugin/max-splash.vim') diff --git a/plugin/max-splash.vim b/plugin/max-splash.vim index bc578e1..3a23e60 100644 --- a/plugin/max-splash.vim +++ b/plugin/max-splash.vim @@ -3,24 +3,31 @@ " Shows recently used files from the current directory in a location list "======================================================================================================================= -" moved after VimEnter of statusline, so that it does not get overwritten any -" more -if empty(argv()) - - " autocmd VimEnter * call setloclist(0, filter(map(copy(v:oldfiles), {_, p->{'filename': expand(get(split(p, "'"), 0))}}), { val -> echo val})) - - " from the list of recent files: make absolute paths, filter out files not - " contained in cwd and finally filter out directories and non-files... - autocmd StdinReadPre * let s:std_in=1 - autocmd VimEnter * if !exists("s:std_in") | call setloclist(0, [], 'r', - \ { - \ 'title':'Recently used files in directory: '.getcwd(), - \ 'items':map(filter(filter( - \ map(copy(v:oldfiles), - \ {_, p->expand(p)}), 'v:val =~ "'.getcwd().'/"'), 'filereadable(v:val)'), - \ {_, p->{'filename': fnamemodify(p, ':.')}}) - \ }) | exec ':lopen '.getloclist(0, {'size' : 1}).size | setfiletype qf | wincmd w -endif +" autocmd VimEnter * call setloclist(0, filter(map(copy(v:oldfiles), {_, p->{'filename': expand(get(split(p, "'"), 0))}}), { val -> echo val})) +" from the list of recent files: make absolute paths, filter out files not +" contained in cwd and finally filter out directories and non-files... +autocmd StdinReadPre * let s:std_in=1 +autocmd VimEnter * if !exists("s:std_in") && empty(argv()) + \ | call setloclist(0, []) + \ | :lopen + \ | setlocal nospell + \ | setlocal signcolumn=yes + \ | setfiletype qf + \ | call setloclist(0, [], 'r', { + \ 'title':'Recently used files in directory: '.getcwd(), + \ 'items':sort(map(filter(filter(map(copy(v:oldfiles[:100]), + \ {_, p->expand(p)}), + \ 'v:val =~ "'.getcwd().'/"'), + \ 'filereadable(v:val)'), + \ {_, p->{'filename': p, + \ 'module': printf("%s | %-*s ", + \ strftime("%F %H:%M", + \ getftime(p)), + \ winwidth(0) - wincol() - 20, + \ fnamemodify(p, ':.') + \ )}}), + \ {a1, a2 -> a1.module < a2.module}) + \ }) | wincmd w " http://vimdoc.sourceforge.net/htmldoc/quickfix.html#:caddexpr " for c in range(char2nr('a'), char2nr('z')) + range(char2nr('A'), char2nr('Z')) + range(0,9) | let p = getpos("'".nr2char(c)) | if (p[1] > 0) | exec "sign define mark_".nr2char(c)." text=".nr2char(c)." linehl=linenr" | exec "sign place ".c." name=mark_".nr2char(c)." line=".p[1] | endif | endfor -- cgit v1.2.3