1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
" Strip the newline from the end of a string
function! Chomp(str)
return substitute(a:str, '\n$', '', '')
endfunction
" Find a file and pass it to cmd
function! DmenuOpen(cmd)
let fname = Chomp(system("git ls-files | dmenu-mac -i -l 20 -p " . a:cmd))
if empty(fname)
return
endif
execute a:cmd . " " . fname
endfunction
" find file in git repo
function! ChooseFile()
let dir = expand("%:h")
if empty(dir) | let dir = getcwd() | endif
let root = system("cd " . dir . " && git rev-parse --show-toplevel")
if v:shell_error != 0 | echo "Not in a git repo" | return | endif
let root = root[0:-2]
let selection = system("cd " . root . " && git ls-files -co --exclude-standard | choose")
if empty(selection) | echo "Canceled" | return | end
echo "Finding file..."
exec ":e " . root . "/" . selection
endfunction
function! DiffWithSaved()
let filetype=&ft
diffthis
vnew | r # | normal! 1Gdd
diffthis
exe "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype
endfunction
" Move to a file common to nvim and vim
function! ToggleList()
if &list == "nolist"
set list
else
set nolist
endif
endfunction
function! ToggleBackground()
if &background == "light"
set background=dark
else
set background=light
endif
endfunction
function! FileMvHelper()
:normal! 0i"A"0y$A p0imv j0
endfunction
" Run Make
function SaveAndBuild()
wall
if exists(":Make")
Make
else
make
endif
endfunction
function QuickUnderline(n)
if a:n == 1
normal! yypv$r=
else
normal! yypv$r-
endif
endfunction
function ReverseDate()
normal! dt/wwpldeBP
endfunction