For presentations I found few useful plugins (not mandatory, but very useful) and options.
Plugins
Goyo - distraction free
The plugin Goyo, that removes all the visual elements (line numbering, status bar, tabs...) to make kind of like the VSCode "zen mode". Cool for presentations (I assume you don't want these elements).
Vim markdown - markdown right in vim
The plugin vim-markdown, that shows pretty markdown, like in emacs org-mode (the surrounding * or _ are removed when your cursor is not on the line).
I use it with the g:vim_markdown_math
set to 1 to I have kink of a LaTeX equation preview.
Configurations
shortcuts
I use the .vpm
extension for my presentations. The idea is to make a file named 000.vpm
, and a 001.vpm
, then 002.vpm
etc. so vim will open them in the right order. Then I open them all with vim *.vpm
.
" when a .vpm file is opened, set the shortcuts
autocmd BufNewFile,BufRead *.vpm call SetVimPresentationMode()
function SetVimPresentationMode()
" proper filetype for vim-markdown
set ft=markdown
" <buffer> so other filetypes aren't affected even if you open them in your presentation
" silent so if you try to go after the last or before the first slide, you do not get any error (nothing happens)
nnoremap <buffer> <space> :silent n<cr>
nnoremap <buffer> <up> :silent N<cr>
nnoremap <buffer> <down> :silent n<cr>
nnoremap <left> :silent N<cr>
nnoremap <right> :silent n<cr>
if !exists("#goyo")
" start Goyo
Goyo 130
endif
endfunction
Then, you can add some special highlighting for titles etc. if you don't like the basic ones for markdown. Here en example (just putted simple colours) :
" with .vpm files : load proper highlighting
autocmd BufWinEnter *.vpm call VimPresentationColors()
function VimPresentationColors()
" hide dashes (they are annoying if you don't know markdown)
" you could do a conceal so they don't have any indentation difference
syn match dashes "^#\+"
hi dashes ctermfg=black
" here are the simple colours :
hi htmlH1 cterm=bold ctermbg=214 ctermfg=16
hi htmlH2 cterm=bold ctermbg=69 ctermfg=16
hi htmlH3 cterm=bold ctermbg=34 ctermfg=16
hi htmlH4 cterm=bold ctermbg=16 ctermfg=214
hi htmlH5 cterm=bold ctermbg=16 ctermfg=69
hi htmlH6 cterm=bold ctermbg=16 ctermfg=34
endfunction
:x
to go back to the presentation. Thanks for your replies!