aboutsummaryrefslogtreecommitdiff
path: root/vim/autoload
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2019-06-22 13:16:30 +1200
committerTom Ryder <tom@sanctum.geek.nz>2019-06-22 13:16:30 +1200
commita6bbfa1a9b3b5c082ab313d7ff42d82394a43242 (patch)
tree3c63fdcce20d19c0b45b0851841d5cf92d86ac3c /vim/autoload
parentAdd fortune.vim plugin as I've got it (diff)
downloaddotfiles-a6bbfa1a9b3b5c082ab313d7ff42d82394a43242.tar.gz
dotfiles-a6bbfa1a9b3b5c082ab313d7ff42d82394a43242.zip
Move fortune.vim function into autoload
Diffstat (limited to 'vim/autoload')
-rw-r--r--vim/autoload/fortune.vim43
1 files changed, 43 insertions, 0 deletions
diff --git a/vim/autoload/fortune.vim b/vim/autoload/fortune.vim
new file mode 100644
index 00000000..4fb1d0cd
--- /dev/null
+++ b/vim/autoload/fortune.vim
@@ -0,0 +1,43 @@
+let s:paths = [
+ \ $HOME.'/.fortunes',
+ \ $HOME.'/.local/share/games/fortunes',
+ \]
+highlight Fortune
+ \ term=NONE
+ \ cterm=NONE ctermfg=248 ctermbg=NONE
+
+function! fortune#() abort
+ if !has('unix')
+ echoerr 'Only works on *nix'
+ endif
+ if !executable('fortune')
+ echoerr 'Missing "fortune" executable'
+ endif
+ if !executable('timeout')
+ echoerr 'Missing "timeout" executable'
+ endif
+ let limit = &columns - 1
+ let command = [
+ \ 'timeout',
+ \ '0.3s',
+ \ 'fortune',
+ \ '-s',
+ \ '-n',
+ \ limit,
+ \]
+ for path in s:paths
+ if isdirectory(path)
+ call add(command, path)
+ break
+ endif
+ endfor
+ let fortune = substitute(
+ \ system(join(command)),
+ \ '[[:cntrl:]]\+',
+ \ ' ',
+ \ 'g',
+ \)
+ echohl Fortune
+ echo fortune
+ echohl None
+endfunction