" To call functions use `:call foo()` " Echoes longest line number and lenght. function! LongestLineLength ( ) let maxlength = 0 let linenumber= 1 while linenumber <= line("$") exe ":".linenumber let linelength = virtcol("$") if maxlength < linelength let maxlength = linelength let maxlinenumber = linenumber endif let linenumber = linenumber+1 endwhile "exe ':0' "exe 'normal O' "exe 'normal 0C'.maxlength exe "normal" . maxlinenumber . "G" exe ":echo \"" . maxlinenumber . ": " . maxlength . "\"" endfunction command LongestLineLength call LongestLineLength() " Save markdown document and export to pdf using pandoc. " " It would be nicer if a default document would be used but I coulnd't made it " to work even after reading that manual section like 2 times. Also, there are " variables that are lists of other variables that I don't know how to make them " work (e.g. geometry=[top=1in, bottom=1in, heightrounded]) function! Md2Pdf ( ) exe ":w" "-N for numbered headers exe ":! pandoc -o \"" . expand("%:r") . ".pdf\" -t latex --variable classoption=twosides --variable papersize=a4 --variable margin-left=1in --variable margin-right=1in --variable margin-top=1in --variable margin-bottom=1in --variable links-as-notes --variable colorlinks --variable pagestyle=plain --variable documentclass=article -f markdown-implicit_figures \"" . expand("%") . "\"" echo "pdf saved as \"" . expand("%:p:r") . ".pdf\"" endfunction function! Md2Pdfms ( ) exe ":w" exe ":! pandoc -o " . expand("%:r") . ".pdf" . " -t ms -f markdown-implicit_figures \"" . expand("%") . "\"" echo "pdf saved as " . expand("%:p:r") . ".pdf" endfunction command Md2Pdf call Md2Pdf() command Md2Pdfms call Md2Pdfms() " Save markdown document and export to html using pandoc function! Md2Html ( ) exe ":w" "exe ":! pandoc -s --toc -H ~/mahcode/markdown/pandoc/pandoc_style.html --highlight-style tango -o \"" . expand("%:r") . ".html\"" . " \"" . expand("%") . "\"" exe ":! pandoc --highlight-style tango -o \"" . expand("%:r") . ".html\"" . " \"" . expand("%") . "\"" echo "html saved as " . expand("%:p:r") . ".html" endfunction command Md2Html call Md2Html() " Save markdown as ODT file (.docx is also possible) function! Md2Odt ( ) exe ":w" exe ":! pandoc -s --toc -H ~/mahcode/markdown/pandoc/pandoc_style.html --highlight-style tango -o \"" . expand("%:r") . ".odt\"" . " \"" . expand("%") . "\"" echo "ODT saved as " . expand("%:p:r") . ".odt" endfunction command Md2Odt call Md2Odt() " Compiles and Runs a C++ project " TODO: how to add program's arguments or file redirectioning from command. function! CompRunProj ( ) exe ":w" exe ":! g++ -o " . expand("%:r") . "-g *.cpp" exe ":! ./" . expand("%:r") endfunction command CompRunProj call CompRunProj() " Function made to give feedback to students code in 1INF01 " export C code to syntax highlighted pdf function! C2Pdf ( ) exe ":set ts=4" exe ":w" exe ":ha > %.ps" exe ":!ps2pdf %.ps" exe ":!rm %.ps" endfunction " For printing first export to html and then print using web browser " Ref.: https://vi.stackexchange.com/questions/12058/printing-unicode-chars function! ExportHTML (colorscheme="quiet", bg="light") " Nice colorschemes for printing on paper: quiet, morning, mac_classic let s:prev_color = g:colors_name let s:prev_bg = &background exe "colorscheme" a:colorscheme exe "set bg=" . a:bg exe "TOhtml | w | !xdg-open %" echo "html export saved as " . expand('%:p') exe "bd" exe "colorscheme" s:prev_color exe "set bg=" . s:prev_bg endfunction command ExportHTML call ExportHTML()