summaryrefslogtreecommitdiffstats
path: root/nvim/pack/mitsuo/start/fun
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/pack/mitsuo/start/fun')
-rw-r--r--nvim/pack/mitsuo/start/fun/Readme.txt1
-rw-r--r--nvim/pack/mitsuo/start/fun/plugin/fun.vim109
2 files changed, 110 insertions, 0 deletions
diff --git a/nvim/pack/mitsuo/start/fun/Readme.txt b/nvim/pack/mitsuo/start/fun/Readme.txt
new file mode 100644
index 0000000..2f41d59
--- /dev/null
+++ b/nvim/pack/mitsuo/start/fun/Readme.txt
@@ -0,0 +1 @@
+My special functions :)
diff --git a/nvim/pack/mitsuo/start/fun/plugin/fun.vim b/nvim/pack/mitsuo/start/fun/plugin/fun.vim
new file mode 100644
index 0000000..42574d3
--- /dev/null
+++ b/nvim/pack/mitsuo/start/fun/plugin/fun.vim
@@ -0,0 +1,109 @@
+" 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()