summaryrefslogtreecommitdiffstats
path: root/public/.config/nvim
diff options
context:
space:
mode:
authorMitsuo Tokumori <[email protected]>2024-09-11 04:25:38 +0900
committerMitsuo Tokumori <[email protected]>2024-09-11 04:25:38 +0900
commit37ff7062874b72bafa99afe661f42653565ed511 (patch)
tree60372bf7fdb94c9034c7d1cc5a17cd7df526c4fc /public/.config/nvim
parentdca319b8d9d221f1aaf3a00ee457d202096c66ac (diff)
downloaddotfiles-37ff7062874b72bafa99afe661f42653565ed511.tar.gz
dotfiles-37ff7062874b72bafa99afe661f42653565ed511.tar.bz2
dotfiles-37ff7062874b72bafa99afe661f42653565ed511.zip
RESTRUCTURE. Replicate relative paths in public/
Diffstat (limited to 'public/.config/nvim')
-rw-r--r--public/.config/nvim/colors/mac_classic.vim226
-rw-r--r--public/.config/nvim/ftplugin/tex.vim1
-rw-r--r--public/.config/nvim/init.vim193
-rw-r--r--public/.config/nvim/pack/mitsuo/Readme.txt1
-rw-r--r--public/.config/nvim/pack/mitsuo/start/fun/Readme.txt1
-rw-r--r--public/.config/nvim/pack/mitsuo/start/fun/plugin/fun.vim121
m---------public/.config/nvim/pack/mitsuo/start/vim-commentary0
7 files changed, 543 insertions, 0 deletions
diff --git a/public/.config/nvim/colors/mac_classic.vim b/public/.config/nvim/colors/mac_classic.vim
new file mode 100644
index 0000000..9382bde
--- /dev/null
+++ b/public/.config/nvim/colors/mac_classic.vim
@@ -0,0 +1,226 @@
+" Vim color scheme
+"
+" Name: mac_classic.vim
+" Maintainer: Drew Neil <[email protected]>
+" License: public domain
+" Version: 0.1
+
+" Boilerplate: {{{1
+set background=light
+highlight clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+let g:colors_name = "mac_classic"
+
+
+" Colors: {{{1
+" TODO figure out how to not highlight TODO
+"
+" #000000
+" #3C4C72 - BLUE/GREY - cursor, rails helpers
+" #0000A2 - D.BLUE - numbers & function names
+" #1E39F6 - BLUE
+" #0066FF - L.BLUE - Comments, TODOs and folds
+" #6E79F1 - L.PURPLE - Booleans, Ruby Constants & CSS definitions
+" #318495 - BLUE/GREEN - Ruby instance/global/pseudo variables
+" #007B22 - D.GREEN - Strings, Labels and code blocks in Markdown
+" #00BC41 - L.GREEN - CSS common attributes & ruby interpolation
+" #990000 - BURGUNDY - Errors and Warnings
+" #D51015 - RED for constants, symbols, numbers
+" #E18AC7 - PINK RegularExpressions in Ruby
+" #FFCE77 - ORANGE - Incremental Search
+" #FFE6BB - L.ORANGE - Search
+" #C6DEFF - VL.BLUE Visual, Current StatusLine & AutoComplete selection
+" #808080 - Line numbers
+" #CFCFCF - VerticalSplit separator
+" #DFDFDF - Invisible Characters
+" #EFEFEF - LineNumber & Non-Current StatusLine
+" #F0F6FF - CursorLine & CursorColumn
+" #FFFFFF - WHITE
+" }}}
+
+" GUI: {{{1
+hi Cursor guifg=#FFFFFF ctermfg=15 guibg=#3C4C72 ctermbg=240
+hi Visual guibg=#C6DEFF ctermbg=189
+hi CursorLine guibg=#F0F6FF ctermbg=15
+hi CursorColumn guibg=#F0F6FF ctermbg=15
+hi LineNr guifg=#808080 ctermfg=244 guibg=#EFEFEF ctermbg=7
+hi VertSplit guifg=#FFFFFF ctermfg=15 guibg=#CFCFCF ctermbg=252 gui=NONE
+hi MatchParen guifg=#1E39F6 ctermfg=27 guibg=NONE gui=bold
+hi Pmenu guibg=#EFEFEF ctermbg=7
+hi PmenuSel guibg=#C6DEFF ctermbg=189
+hi Directory guifg=#D51015 ctermfg=160 gui=bold
+hi Folded guifg=#0066FF ctermfg=27 guibg=#FFFFFF ctermbg=15
+" StatusLine: {{{2
+hi StatusLine guifg=#000000 ctermfg=0 guibg=#C6DEFF ctermbg=189 gui=italic
+hi StatusLineNC guifg=#000000 ctermfg=0 guibg=#EFEFEF ctermbg=7 gui=NONE
+
+" Search: {{{2
+" [IncSearch is stronger than Search]
+hi IncSearch guifg=NONE guibg=#FFCE77 ctermbg=222 gui=NONE
+hi Search guibg=#FFE6BB ctermbg=223
+
+" Syntax: {{{1
+hi Normal guifg=#000000 ctermfg=0 guibg=#FFFFFF ctermbg=15
+hi Boolean guifg=#6E79F1 ctermfg=69 gui=bold
+hi Character guifg=#D51015 ctermfg=160 gui=bold
+hi Comment guifg=#0066FF ctermfg=27 gui=italic
+hi Conditional guifg=#1E39F6 ctermfg=27 gui=bold
+hi Constant guifg=#D51015 ctermfg=160 gui=bold
+hi Define guifg=#1E39F6 ctermfg=27 gui=bold
+hi ErrorMsg guifg=#FFFFFF ctermfg=15 guibg=#990000 ctermbg=88
+hi WarningMsg guifg=#FFFFFF ctermfg=15 guibg=#990000 ctermbg=88
+hi Float guifg=#0000A2 ctermfg=19
+hi Function guifg=#0000A2 ctermfg=19 gui=bold
+hi Identifier guifg=#1E39F6 ctermfg=27 gui=bold
+hi Keyword guifg=#1E39F6 ctermfg=27 gui=bold
+hi Label guifg=#007B22 ctermfg=28
+hi Number guifg=#0000A2 ctermfg=19
+hi Operator guifg=#1E39F6 ctermfg=27 gui=bold
+hi PreProc guifg=#1E39F6 ctermfg=27 gui=bold
+hi Special guifg=#000000 ctermfg=0
+hi Statement guifg=#1E39F6 ctermfg=27 gui=bold
+hi StorageClass guifg=#1E39F6 ctermfg=27 gui=bold
+hi String guifg=#007B22 ctermfg=28
+hi Title guifg=#000000 ctermfg=0 gui=bold
+hi Todo guifg=#0066FF ctermfg=27 gui=inverse,bold,italic
+hi Underlined gui=underline
+
+" Invisible character colors
+hi NonText guifg=#DFDFDF ctermfg=253 guibg=#FFFFFF ctermbg=15
+hi SpecialKey guifg=#DFDFDF ctermfg=253 guibg=#FFFFFF ctermbg=15
+
+" Diff styles {{{1
+hi diffAdded guifg=#007B22 guibg=#FFFFFF ctermfg=28 ctermbg=15
+hi diffRemoved guifg=#D51015 guibg=#FFFFFF ctermfg=160 ctermbg=15
+hi diffFile guifg=#6E79F1 guibg=#FFFFFF ctermfg=69 ctermbg=15
+hi diffNewFile guifg=#6E79F1 guibg=#FFFFFF ctermfg=69 ctermbg=15
+hi diffLine guifg=#000000 guibg=#FFFFFF ctermfg=0 ctermbg=15
+
+hi diffAdd guifg=#007B22 guibg=#FFFFFF ctermfg=28 ctermbg=15
+hi diffChange guifg=#007B22 guibg=#FFFFFF ctermfg=28 ctermbg=15
+hi diffText guifg=#007B22 guibg=#FFFFFF ctermfg=28 ctermbg=15
+hi link diffDelete diffRemoved
+" Git styles {{{1
+hi gitcommitFirstLine guifg=#000000 guibg=#FFFFFF ctermfg=0 ctermbg=15
+hi gitcommitSelectedType guifg=#007B22 guibg=#FFFFFF ctermfg=28 ctermbg=15
+hi link gitcommitSelectedFile gitcommitSelectedType
+hi gitcommitDiscardedType guifg=#D51015 guibg=#FFFFFF ctermfg=160 ctermbg=15
+hi link gitcommitDiscardedFile gitcommitDiscardedType
+hi gitcommitUntrackedFile guifg=#6E79F1 guibg=#FFFFFF ctermfg=69 ctermbg=15
+" Ruby styles {{{1
+hi rubyClass guifg=#1E39F6 ctermfg=27 gui=bold
+hi rubyFunction guifg=#0000A2 ctermfg=19 gui=bold
+hi rubyInterpolationDelimiter guifg=#00BC41 ctermfg=35
+hi rubyInterpolation guifg=#00BC41 ctermfg=35
+hi rubySymbol guifg=#D51015 ctermfg=160 gui=bold
+hi rubyConstant guifg=#6E79F1 ctermfg=69 gui=bold
+hi rubyStringDelimiter guifg=#007B22 ctermfg=28
+hi rubyInstanceVariable guifg=#318495 ctermfg=66
+hi rubyInclude guifg=#1E39F6 ctermfg=27 gui=bold
+hi rubyGlobalVariable guifg=#318495 ctermfg=66
+hi rubyRegexp guifg=#E18AC7 ctermfg=176
+hi rubyRegexpAnchor guifg=#E18AC7 ctermfg=176
+hi rubyRegexpQuantifier guifg=#E18AC7 ctermfg=176
+hi rubyRegexpParens guifg=#E18AC7 ctermfg=176
+hi rubyRegexpEscape guifg=#00BC41 ctermfg=35
+hi rubyRegexpCharClass guifg=#00BC41 ctermfg=35
+hi rubyRegexpDelimiter guifg=#E18AC7 ctermfg=176
+hi rubyEscape guifg=#00BC41 ctermfg=35
+hi rubyControl guifg=#1E39F6 ctermfg=27 gui=bold
+hi rubyOperator guifg=#1E39F6 ctermfg=27 gui=bold
+hi rubyException guifg=#1E39F6 ctermfg=27 gui=bold
+hi rubyPseudoVariable guifg=#318495 ctermfg=66
+hi rubyRailsUserClass guifg=#6E79F1 ctermfg=69 gui=bold
+hi rubyRailsARAssociationMethod guifg=#3C4C72 ctermfg=240 gui=bold
+hi rubyRailsARMethod guifg=#3C4C72 ctermfg=240 gui=bold
+hi rubyRailsRenderMethod guifg=#3C4C72 ctermfg=240 gui=bold
+hi rubyRailsMethod guifg=#3C4C72 ctermfg=240 gui=bold
+hi link erubyComment Comment
+hi erubyRailsMethod guifg=#3C4C72 ctermfg=240 gui=bold
+
+" XML: {{{1
+hi link xmlEndTag xmlTag
+" HTML: {{{1
+hi htmlTag guifg=#1E39F6 ctermfg=27
+hi link htmlEndTag htmlTag
+hi link htmlTagName htmlTag
+hi link htmlArg htmlTag
+hi htmlSpecialChar guifg=#D51015 ctermfg=160 gui=bold
+hi htmlH1 gui=bold
+hi link htmlH2 htmlH1
+hi link htmlH3 htmlH1
+hi link htmlH4 htmlH1
+hi link htmlH5 htmlH1
+hi link htmlH6 htmlH1
+
+" JavaScript: {{{1
+hi javaScriptFunction guifg=#1E39F6 ctermfg=27 gui=bold
+hi javaScriptFuncName guifg=#318495 ctermfg=66 gui=italic
+hi javaScriptLabel guifg=#0000A2 ctermfg=19 gui=bold
+hi javaScriptRailsFunction guifg=#3C4C72 ctermfg=240 gui=bold
+hi javaScriptType guifg=#318495 ctermfg=66 gui=none
+hi javaScriptArgument guifg=#318495 ctermfg=66 gui=italic
+hi javaScriptRegexpString guifg=#E18AC7 ctermfg=176 gui=NONE
+hi javaScriptSpecial guifg=#00BC41 ctermfg=35 gui=NONE
+" NOTE: Syntax Highlighting for javascript doesn't match the
+" TextMate version very accurately, because the javascript
+" syntax file does not create matches for some items. In
+" particular:
+" * javaScriptArgument - e.g. function(argument)
+" * javaScriptFuncName for object literal style functions - e.g.:
+" myFunction: function() { ... }
+
+" YAML: {{{1
+hi yamlAnchor guifg=#318495 ctermfg=66
+hi yamlAlias guifg=#318495 ctermfg=66
+hi yamlDocumentHeader guibg=#F2F2F2 ctermbg=7
+
+" CSS: {{{1
+hi cssTagName gui=bold
+hi cssIdentifier gui=italic
+hi link cssClassName cssIdentifier
+hi cssDefinition guifg=#6E79F1 ctermfg=69
+hi link cssRenderProp cssDefinition
+hi link cssTextProp cssDefinition
+hi link cssFontProp cssDefinition
+hi link cssColorProp cssDefinition
+hi link cssBoxProp cssDefinition
+hi link cssGeneratedContentProp cssDefinition
+hi link cssUIProp cssDefinition
+hi cssCommonAttr guifg=#00BC41 ctermfg=35
+hi link cssAttr cssCommonAttr
+hi link cssRenderAttr cssCommonAttr
+hi link cssTextAttr cssCommonAttr
+hi link cssFontAttr cssCommonAttr
+hi link cssGeneratedContentAttr cssCommonAttr
+hi cssURL guifg=#007B22 ctermfg=28
+hi cssFunctionName guifg=#3C4C72 ctermfg=240 gui=bold
+hi cssColor guifg=#D51015 ctermfg=160 gui=bold
+hi cssValueLength guifg=#0000A2 ctermfg=19
+hi cssImportant guifg=#1E39F6 ctermfg=27 gui=bold
+
+" Vimscript: {{{1
+hi vimGroup guifg=#007B22 ctermfg=28 gui=bold
+hi link vimHiGroup vimGroup
+hi vimCommentTitle guifg=#3C4C72 ctermfg=240 gui=bold
+hi helpSpecial guifg=#6E79F1 ctermfg=69
+
+" Markdown: {{{1
+hi markdownBold gui=bold
+hi markdownItalic gui=italic
+hi markdownCode guifg=#007B22 ctermfg=28
+hi link markdownCodeBlock markdownCode
+
+" Outliner: {{{1
+hi BT1 guifg=#808080 ctermfg=244 gui=italic
+hi OL1 guifg=#000000 ctermfg=0 gui=bold
+hi OL2 guifg=#0000A2 ctermfg=19 gui=bold
+hi OL3 guifg=#007B22 ctermfg=28 gui=bold
+hi OL4 guifg=#6E79F1 ctermfg=69 gui=NONE
+" Modelines: {{{1
+" vim: nowrap fdm=marker
+" }}}
diff --git a/public/.config/nvim/ftplugin/tex.vim b/public/.config/nvim/ftplugin/tex.vim
new file mode 100644
index 0000000..e005eb1
--- /dev/null
+++ b/public/.config/nvim/ftplugin/tex.vim
@@ -0,0 +1 @@
+nnoremap <buffer> <F6> :!build-latex.sh %<CR>
diff --git a/public/.config/nvim/init.vim b/public/.config/nvim/init.vim
new file mode 100644
index 0000000..c6d2bb3
--- /dev/null
+++ b/public/.config/nvim/init.vim
@@ -0,0 +1,193 @@
+" NeoVim init.vim
+"
+" Differences with good ol' Vim:
+"
+" NeoVim has so many of the modern and helpful Vim options on by default. I'll
+" remove most of the old Vim configurations that now come by default in NeoVim.
+"
+" Also NeoVim uses XDG directories by default, keeping a clean directory tree.
+"
+" NeoVim also allows for this file to be written in Lua. I'll stick to using
+" Vim script becuase it has more documentation and is more concise configuring
+" Vim options.
+"
+" Instead of viminfo, NeoVim uses shada files (SHared DAta) (different format).
+" See shada-file-name.
+"
+" For some reason, as of version v0.8.3 of NeoVim, Vim internal codes for shift-
+" and control- function keys change in NeoVim. <S-F1> changes to <F13>, and
+" <C-F1> changes to <F25>. See https://github.com/neovim/neovim/issues/7384
+"
+" Plugins: There are a lot of ways to install "plug-in"s in Vim. My prefered
+" way is using Vim packages, available since Vim version 8. See packages.
+"
+" Tips:
+" * To show navigate help files:
+" K " while on an option to see it's documentation
+" CTRL-] " navigation while on a Vim help file
+" * To re-indent:
+" tab->spaces :set tabstop=n :set expandtab :retab
+" spaces->tab :set noexpandtab :set tabstop={softtabstop} :retab!
+" * To justify:
+" To 'justify' comments or block of text (paragraph) use `gq{motion}` or
+" `gp{motion}`, where {motion} can be `[/`, `]/`, `ip`, `i{`, `a{`.
+" * To see the last page of previous command:
+" `g<`
+" * Buffer stuff:
+" :ls " shows all buffers
+" :b N " Go to buffer N (integer)
+
+
+" Settings
+" ----------------------------------------------------------------------
+
+" Common
+colorscheme industry
+filetype plugin on
+
+" Command line:
+set cmdheight=1
+set wildmenu
+set wildignore+=*.o,.git,*.class
+set path+=./**30 " For gf and :find, add all subdirectories relative to
+ " current file (30 max) to the "search space"
+
+" Search
+set ignorecase
+set smartcase
+
+" Screen
+set nonumber
+set scrolloff=5 " show a few lines of context
+set colorcolumn=+1 " show ruler at position tabstop+1
+set laststatus=2
+" Add buffer number to the default status line with ruler
+set statusline=%<%f\ %h%m%r%=b%02n\ \ %-14.(%l,%c%V%)\ %P
+
+" TODO: move to ftplugin
+" TODO: create tags automatically (:!ctags -R . after :w if ft=c)
+" Tag Jumping
+" Instructions: create tag index (e.g. $ ctags -R .)
+" place cursor on tag
+" ^] to jump to definition
+" g^] if more than 1 definition
+" ^T to return (or ^O)
+
+"set cindent
+"set cinoptions=:0,g0 " See C-indenting
+
+
+" Indentation: 4 spaces
+" See also: autoindent, smartindent, cindent, indentexpr
+set tabstop=4 " Each '\t' takes 8 virtual (screen) columns
+set shiftwidth=0 " (Auto)indentation. Also affects: >>, i_C-T, i_C-D
+set expandtab " Expand inserted <Tab>s with <Space>
+set smartindent " Smart indenting when starting a new line
+
+" Formatting: See fo-table
+set formatoptions+=t " auto-wrap text (when inserting)
+set formatoptions+=c " auto-wrap comments (when inserting)
+set formatoptions+=q " Allow formatting of comments with "gq"
+set formatoptions+=j " Removes comment leader when joining lines
+set formatoptions+=l " Don't break long lines that are already typed
+set formatoptions+=r " Insert current leader after <Enter> in Insert mode
+set formatoptions+=p " Don't break honorifics like Prof. Smith
+set formatoptions+=n " Recognize numbered lists
+set formatoptions+=o " Automatically insert the current comment
+ " leader after `o`.
+
+" Wrap: Auto-break lines longer than 80 colums
+set textwidth=80
+set wrap
+set linebreak " Don't break words
+
+" Mouse
+set mouse=a " Enable mouse for all modes
+
+" Buffers
+set hidden " Allow for hidden modified buffers
+
+" Split
+set splitbelow splitright
+
+
+" Mappings
+" ----------------------------------------------------------------------
+
+let $VIMFILES = split(&rtp, ",")[0]
+
+map <F5> :source $VIMFILES/init.vim<CR>
+map <F17> :e $VIMFILES/init.vim<CR>
+
+map <F7> :tabp<CR>
+map <F8> :tabn<CR>
+map <F19> :bNext<LF>
+map <F20> :bnext<LF>
+
+" TODO: move to ftplugin
+" C/C++ Programming:
+map <F6> :w<CR>:!clear && make<CR>
+"map <F10> :!./%:r<CR>
+"map <F10> :!./a.out<CR>
+map <F11> :cnext<CR>
+map <S-F11> :cprev<CR>
+" "Run cTags"
+map <Leader>rt :!ctags -R .<CR>
+map <C-\> :tnext<CR>
+" Motion to go to beggining of function while cursor is inside
+nmap [f [m[{k0
+
+" pandoc (& website):
+nnoremap mm :w<CR>:Md2Html<CR><CR><CR>
+nmap mM mm:!updatewebsite_zaz<CR><CR>
+
+" asciidoctor:
+nnoremap ma :w<CR>:!asciidoctor %<CR><CR>
+nmap mA ma:!updatewebsite.sh<CR><CR>
+
+" Funcionallity of the following depends on terminal emulator. Needs 8-bit
+" input enabled
+" for <Meta> = Alt key combos
+" From: https://vim.fandom.com/wiki/Get_Alt_key_to_work_in_terminal
+nmap <M-H> <C-W>h
+nmap <M-J> <C-W>j
+nmap <M-K> <C-W>k
+nmap <M-L> <C-W>l
+
+" Go Title Case (and clear highlighted matches)
+" Ref.: https://vim.fandom.com
+vmap gt :s/\<\(\w\)\(\w*\)\>/\u\1\L\2/g<CR><C-L>
+
+" Autoformat JSON jumbled data
+" Ref.: https://stackoverflow.com/questions/26214156/how-to-auto-format-json-on-save-in-vim
+nnoremap gJ :%!python3 -m json.tool<CR>
+
+" Replaces previous WORD arithmetic expression with result (from Vim
+" fandom-wiki)
+inoremap <C-A> <Esc>diWi<C-R>=<C-R>"<CR>
+
+
+" Views and Sessions (Window layout and Line folding)
+" ----------------------------------------------------------------------
+" It is possible to create folds automatically but idk how to do it.
+" :mkview so save them :loadview to load them (zo open one, zc close one,
+" zR to open all, zM to close all, zx to restore))
+
+" Views saves folds. Sessions saves all windows configuration and layout
+" Load Sessions with $ vim -S Session.vim
+
+" To automatically save and restore views for *.c *.cpp files:
+"au BufWinLeave *.c mkview
+"au BufWinEnter *.c silent loadview
+"au BufWinLeave *.cpp mkview
+"au BufWinEnter *.cpp silent loadview
+
+
+" Playground
+" ----------
+"autocmd FileType tex nnoremap <buffer> <F6> :!./build.sh %<CR>
+
+"augroup TeX
+" autocmd!
+" autocmd BufWritePost *.tex !./build.sh %
+"augroup END
diff --git a/public/.config/nvim/pack/mitsuo/Readme.txt b/public/.config/nvim/pack/mitsuo/Readme.txt
new file mode 100644
index 0000000..a9e88cd
--- /dev/null
+++ b/public/.config/nvim/pack/mitsuo/Readme.txt
@@ -0,0 +1 @@
+Vim plugins I use go here.
diff --git a/public/.config/nvim/pack/mitsuo/start/fun/Readme.txt b/public/.config/nvim/pack/mitsuo/start/fun/Readme.txt
new file mode 100644
index 0000000..2f41d59
--- /dev/null
+++ b/public/.config/nvim/pack/mitsuo/start/fun/Readme.txt
@@ -0,0 +1 @@
+My special functions :)
diff --git a/public/.config/nvim/pack/mitsuo/start/fun/plugin/fun.vim b/public/.config/nvim/pack/mitsuo/start/fun/plugin/fun.vim
new file mode 100644
index 0000000..c992f93
--- /dev/null
+++ b/public/.config/nvim/pack/mitsuo/start/fun/plugin/fun.vim
@@ -0,0 +1,121 @@
+" 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()
+
+" C++
+" Formatting
+" Ref.: https://clang.llvm.org/docs/ClangFormat.html
+map <C-K> :pyf /usr/share/clang/clang-format.py<cr>
+"imap <C-K> <c-o>:py3f /usr/share/clang/clang-format.py<cr>
+
+"function! Formatonsave()
+" let l:formatdiff = 1
+" pyf /usr/share/clang/clang-format.py
+"endfunction
+"autocmd BufWritePre *.h,*.hpp,*.cc,*.cpp call Formatonsave()
diff --git a/public/.config/nvim/pack/mitsuo/start/vim-commentary b/public/.config/nvim/pack/mitsuo/start/vim-commentary
new file mode 160000
+Subproject e87cd90dc09c2a203e13af9704bd0ef79303d75