/
clojure.vim
47 lines (40 loc) · 1.26 KB
/
clojure.vim
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
" Vim filetype plugin
" Language: clojure
" Maintainer: Ben Knoble <ben.knoble@gmail.com>
let b:interpreter = 'clojure -Arebel'
nmap <buffer> <Localleader>qe ysiebaquote <Esc>:silent! call repeat#set("\<Localleader>qe", -1)<CR>
nmap <buffer> <Localleader>qf ysafbaquote <Esc>:silent! call repeat#set("\<Localleader>qf", -1)<CR>
" commands from fireplace
nnoremap <buffer> <Localleader>t :Require! <bar> RunTests<CR>
inoreabbrev <buffer> ($ (partial
inoreabbrev <buffer> (o (comp
setlocal lispwords+=are
setlocal lispwords+=cond
setlocal lispwords+=do
setlocal lispwords+=with-out-str
setlocal foldmethod=syntax
augroup CljRequire
" can't use autocmd! here because it would clear the group entirely
autocmd! * <buffer>
autocmd BufWritePost <buffer> silent! Require
augroup END
let b:undo_ftplugin = ftplugin#undo({
\ 'opts': [
\ 'lispwords',
\ 'foldmethod',
\ ],
\ 'vars': [
\ 'b:interpreter',
\ ],
\ 'maps': [
\ [ 'n', '<Localleader>l' ],
\ [ 'n', '<Localleader>L' ],
\ [ 'n', '<Localleader>qe' ],
\ [ 'n', '<Localleader>qf' ],
\ [ 'i', '$' ],
\ [ 'i', 'o' ],
\ ],
\ 'custom': [
\ 'autocmd! CljRequire * <buffer>',
\ ]
\ })