diff options
Diffstat (limited to '')
-rw-r--r-- | doc/rfc/rfc.vim | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/rfc/rfc.vim b/doc/rfc/rfc.vim new file mode 100644 index 00000000..2455d8a6 --- /dev/null +++ b/doc/rfc/rfc.vim @@ -0,0 +1,30 @@ +if !exists('g:rfc_path') + let g:rfc_path = expand('<sfile>:h:h:h:h') . '/rfc' +endif + +function! s:RFC(number) + if !empty(a:number) + let number = str2nr(matchstr(a:number, '\d\+'), 10) + else + let number = '-index' + endif + let path = expand(g:rfc_path . '/rfc' . number . '.txt.gz') + if filereadable(path) + execute 'silent' 'noswapfile' 'view' path + else + echohl ErrorMsg | echo 'No such RFC' a:number | echohl None + endif +endfunction + +function! s:BufRead() + setlocal readonly + setlocal keywordprg=:RFC + setlocal iskeyword=a-z,A-Z,48-57,.,[,],-,_ + nmap <buffer> <silent> gO :call search('^Table of Contents', 'bcs')<CR> +endfunction + +command! -bar -nargs=? RFC call s:RFC(<q-args>) +augroup RFC + autocmd! + autocmd BufRead rfc*.txt.gz call s:BufRead() +augroup END |