.vim/autoload/vimrc.vim

Tue, 06 Jul 2021 13:34:06 -0500

author
Meredith Howard <mhoward@roomag.org>
date
Tue, 06 Jul 2021 13:34:06 -0500
changeset 920
c1cc35d18597
parent 897
760d4f0ca87b
child 939
b769704bb258
permissions
-rw-r--r--

Add PruneSession

631
8e07c29f2672 fix viewdoc abbrevs and cabbrevs in general
Meredith Howard <mhoward@roomag.org>
parents: 619
diff changeset
1 func! vimrc#CommandAlias(abbrev, expand) abort
632
9a87ce42aa3c getcmdpos is cursor position in expr mode here, wont work
Meredith Howard <mhoward@roomag.org>
parents: 631
diff changeset
2 execute printf('cnoreabbrev <expr> %s (getcmdtype()==":" && getcmdline()=="%s") ? "%s" : "%s"', a:abbrev, a:abbrev, a:expand, a:abbrev)
631
8e07c29f2672 fix viewdoc abbrevs and cabbrevs in general
Meredith Howard <mhoward@roomag.org>
parents: 619
diff changeset
3 endfunc
470
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
4
580
5a9e9be223f0 shorten
Meredith Howard <mhoward@roomag.org>
parents: 579
diff changeset
5 func! vimrc#AutoFmtToggle() abort
641
60b56bbfc143 use strict regex ops
Meredith Howard <mhoward@roomag.org>
parents: 640
diff changeset
6 if &formatoptions =~# 'a'
640
f8985ae54969 avoid abbreviated options
Meredith Howard <mhoward@roomag.org>
parents: 632
diff changeset
7 setl formatoptions-=a | echo '-a'
470
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
8 else
640
f8985ae54969 avoid abbreviated options
Meredith Howard <mhoward@roomag.org>
parents: 632
diff changeset
9 setl formatoptions+=a | echo '+a'
470
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
10 endif
580
5a9e9be223f0 shorten
Meredith Howard <mhoward@roomag.org>
parents: 579
diff changeset
11 endfunc
470
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
12
586
ab5763bb6ca7 improve ltag
Meredith Howard <mhoward@roomag.org>
parents: 583
diff changeset
13 func! vimrc#Ltag(term) abort
ab5763bb6ca7 improve ltag
Meredith Howard <mhoward@roomag.org>
parents: 583
diff changeset
14 exe "ltag " . a:term
ab5763bb6ca7 improve ltag
Meredith Howard <mhoward@roomag.org>
parents: 583
diff changeset
15 lopen
ab5763bb6ca7 improve ltag
Meredith Howard <mhoward@roomag.org>
parents: 583
diff changeset
16 endfunc
ab5763bb6ca7 improve ltag
Meredith Howard <mhoward@roomag.org>
parents: 583
diff changeset
17
470
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
18 " Make paths when writing, as necessary
580
5a9e9be223f0 shorten
Meredith Howard <mhoward@roomag.org>
parents: 579
diff changeset
19 func! vimrc#MkNonExDir(file, buf) abort
470
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
20 if empty(getbufvar(a:buf, '&buftype')) && a:file!~#'\v^\w+\:\/'
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
21 let dir=fnamemodify(a:file, ':h')
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
22 if !isdirectory(dir)
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
23 call mkdir(dir, 'p')
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
24 endif
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
25 endif
580
5a9e9be223f0 shorten
Meredith Howard <mhoward@roomag.org>
parents: 579
diff changeset
26 endfunc
470
4c2db769baac Move into autoload
Meredith Howard <mhoward@roomag.org>
parents:
diff changeset
27
805
59b23772424a No more unite-session
Meredith Howard <mhoward@roomag.org>
parents: 803
diff changeset
28 func! vimrc#AutoSessionCheck() abort
583
e2c2404479d3 move one more func
Meredith Howard <mhoward@roomag.org>
parents: 580
diff changeset
29 if strlen(v:servername) > 0 && match(v:servername, 'VIM') == -1
805
59b23772424a No more unite-session
Meredith Howard <mhoward@roomag.org>
parents: 803
diff changeset
30 let sessionfile = g:vimcache . "/session/" . tolower(v:servername) . ".vim"
59b23772424a No more unite-session
Meredith Howard <mhoward@roomag.org>
parents: 803
diff changeset
31
59b23772424a No more unite-session
Meredith Howard <mhoward@roomag.org>
parents: 803
diff changeset
32 if filereadable(sessionfile)
59b23772424a No more unite-session
Meredith Howard <mhoward@roomag.org>
parents: 803
diff changeset
33 execute "source " . sessionfile
59b23772424a No more unite-session
Meredith Howard <mhoward@roomag.org>
parents: 803
diff changeset
34 endif
583
e2c2404479d3 move one more func
Meredith Howard <mhoward@roomag.org>
parents: 580
diff changeset
35 endif
e2c2404479d3 move one more func
Meredith Howard <mhoward@roomag.org>
parents: 580
diff changeset
36 endfunc
728
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
37
803
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
38 func! vimrc#Ag(args) abort
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
39 let orig_t_ti = &t_ti
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
40 let orig_t_te = &t_te
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
41 let orig_shellpipe = &shellpipe
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
42
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
43 set t_ti= t_te=
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
44 let &shellpipe = substitute(&shellpipe, '| tee', ' >', '')
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
45
832
8acb094e5e12 use cword as ag/rg default
Meredith Howard <mhoward@roomag.org>
parents: 829
diff changeset
46 let grepargs = a:args == '' ? expand('<cword>') : a:args . join(a:000, ' ')
8acb094e5e12 use cword as ag/rg default
Meredith Howard <mhoward@roomag.org>
parents: 829
diff changeset
47
803
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
48 try
832
8acb094e5e12 use cword as ag/rg default
Meredith Howard <mhoward@roomag.org>
parents: 829
diff changeset
49 silent! execute "grep " . escape(grepargs, '|')
803
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
50 copen
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
51
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
52 let @/ = matchstr(a:args, "\\v(-)\@<!(\<)\@<=\\w+|['\"]\\zs.{-}\\ze['\"]")
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
53 call feedkeys(":let &hlsearch=1 \| echo \<CR>", 'n')
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
54 finally
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
55 let &t_ti = orig_t_ti
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
56 let &t_te = orig_t_te
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
57 let &shellpipe = orig_shellpipe
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
58 endtry
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
59 endfunc
ffc6f9c140cd Move this Ag stuff into a function, remove flickers
Meredith Howard <mhoward@roomag.org>
parents: 750
diff changeset
60
728
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
61 func! vimrc#Gcd() abort
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
62 let root = system('git rev-parse --show-toplevel 2>/dev/null')[:-2]
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
63 if ! v:shell_error
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
64 exec 'cd ' . root
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
65 endif
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
66 pwd
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
67 endfunc
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
68
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
69 func! vimrc#Hgcd() abort
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
70 let root = system('hg root 2>/dev/null')[:-2]
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
71 if ! v:shell_error
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
72 exec 'cd ' . root
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
73 endif
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
74 pwd
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
75 endfunc
60df63f03873 I don't really use these except for the cd shortcuts
Meredith Howard <mhoward@roomag.org>
parents: 725
diff changeset
76
750
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
77 func! vimrc#SafeFilterFile(cmd)
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
78 let errors = tempname()
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
79 try
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
80 exec 'silent %!' . a:cmd . ' 2>' . shellescape(errors)
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
81 if v:shell_error
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
82 for line in readfile(errors)
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
83 echomsg line
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
84 endfor
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
85 endif
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
86 finally
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
87 call delete(errors)
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
88 endtry
36a4da0a9863 Separate errors from filter stream
Meredith Howard <mhoward@roomag.org>
parents: 728
diff changeset
89 endfunc
920
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
90
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
91 if has('perl')
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
92 func! vimrc#PruneSession() abort
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
93 perl <<END_PERL
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
94 my @bufs =
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
95 grep { !-e $_->Name || -d _ || (-M _ >= 30) }
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
96 grep { $_->Name } VIM::Buffers();
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
97
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
98 while (my $b = shift @bufs) {
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
99 VIM::Msg 'pruned: ' . $b->Name, 'Comment';
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
100 VIM::DoCommand 'bwipeout ' . $b->Number;
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
101 }
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
102 VIM::DoCommand 'bprev'
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
103 unless $curbuf->Name;
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
104 END_PERL
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
105 endfunc
c1cc35d18597 Add PruneSession
Meredith Howard <mhoward@roomag.org>
parents: 897
diff changeset
106 endif

mercurial