aboutsummaryrefslogtreecommitdiff
path: root/plugin/KarlMarks.vim
blob: effb22bef8c89ba53f3320c4ba39730950275e9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
let g:markerbar_additional = '$^"^.`{}[]<>()'

function! KarlMarks()
    for c in map(split(g:markerbar_additional, '\zs'), "char2nr(v:val)") + 
                \ range(char2nr('a'), char2nr('z')) +
                \ range(char2nr('A'), char2nr('Z')) +
                \ range(char2nr('0'), char2nr('9'))

        let p = getpos("'".nr2char(c)) 

        if (p[0] == 0 || p[0] == winbufnr(0)) && p[1] > 0 
            exec "sign unplace ".c
            exec "sign define mark_".c." text=".nr2char(c)." texthl=linenr"
            exec "sign place ".c." name=mark_".c." line=".p[1]." buffer=".winbufnr(0)
        endif  
    endfor 
endfunction

autocmd CursorHold * call KarlMarks()

" important for distraction free reading while changing windows
set signcolumn=yes
..