slides.vim

Des slides dans votre vim - retour accueil

git clone git://bebou.netlib.re/slides.vim
Log | Files | Refs |

slides.vim (2503B)


      1 " vim: fdm=indent
      2 " digraphs are
      3 " ‹ = 1<
      4 " › = 1>
      5 
      6 let $PATH = join(
      7 \ [ $PATH
      8 \ , expand('<sfile>:p:h:h')."/bin"
      9 \ , expand('%:p:h')."/bin"
     10 \ ]
     11 \ , ":" )
     12 command -nargs=1 -range=% FixTitles <line1>,<line2>! slides.vim.fixtitles <args>
     13 
     14 set conceallevel=3 concealcursor=n
     15 command -nargs=0 Mod  set conceallevel=0 nofen spell
     16 command -nargs=0 Prez set conceallevel=3 fen nospell
     17 
     18 command -nargs=0 Record redir @a
     19 \| exe "normal \<c-l>"
     20 \| redraw
     21 \| silent call system("sh ./next")
     22 \| redir END
     23 
     24 nnoremap ,x :Record<cr>
     25 " edition commands:
     26     inoremap <buffer> (' <space>›<c-o>i
     27     inoremap <buffer> (* ▶<space>
     28     inoremap <buffer> (- <space>
     29     inoremap <buffer> (" ›<space>
     30     inoremap <buffer> (5  <cr> <cr> <cr> <cr> <cr><esc>5kA
     31 
     32 " presentation command
     33     nnoremap <buffer> <PageUp> zkzt
     34     nnoremap <buffer> <PageDown> zjzt:Hook<cr>:redraw!<cr>
     35 
     36 command Hook exec matchstr(getline("."),"^\\v^[^›]+")
     37 
     38 " Theme:
     39     highlight Slidetitle     cterm=bold ctermfg=white     ctermbg=darkblue
     40     highlight EmphasizeBad   cterm=bold ctermfg=darkred   ctermbg=none
     41     highlight EmphasizeGood  cterm=bold ctermfg=darkgreen ctermbg=none
     42     highlight Hook  ctermfg=darkred ctermbg=none
     43     highlight Folded cterm=none ctermbg=none ctermfg=white
     44     highlight EndOfBuffer ctermfg=black ctermbg=black
     45     setlocal fcs=fold:\ ,diff:\
     46     setlocal noshowmode noruler noshowcmd nolist nonu nornu
     47     setlocal so=0 laststatus=0 statusline=0
     48     " use nbsp to emphasize something
     49     " see emphasize.slides demo
     50 
     51 setlocal fdm=expr fdo=all fcl=all foldexpr=getline(v:lnum)=~'›'?'>1':1
     52 
     53 let b:show_agenda=v:true
     54 
     55 if !exists('*AgendaToggle')
     56     command -nargs=0 Agenda
     57         \  let b:show_agenda=v:true
     58         \| setlocal foldtext=substitute(getline(v:foldstart),\".*›\",\"\",\"\")
     59     command -nargs=0 NoAgenda
     60         \  let b:show_agenda=v:false
     61         \| setlocal foldtext='\ '
     62         " \| setlocal foldtext=substitute(getline(v:foldstart),'.\\v(.*)','','')
     63     fun AgendaToggle ()
     64         if b:show_agenda | NoAgenda
     65         else             | Agenda
     66         endif
     67     endfun
     68     command -nargs=0 AgendaToggle call AgendaToggle()
     69     command -nargs=0 -bang A <bang>?AgendaShow:AgendaHide
     70 endif
     71 
     72 AgendaToggle
     73 
     74 command -nargs=0 LoadTheme
     75 \| set nofen
     76 \| silent /^" *<vim\>/;/^" *vim>/w! /tmp/vimslidestheme
     77 \| so /tmp/vimslidestheme
     78 \| silent exec "!rm /tmp/vimslidestheme"
     79 
     80 if search("^\" *<vim\\>","n") | LoadTheme
     81 endif
     82 set fen " should be a toggle in LoadTheme
     83 1