From b8b7563bd9cf1731cb5dc2e34ed88d5bc1e336c8 Mon Sep 17 00:00:00 2001
From: InigoGutierrez
Date: Thu, 15 Jul 2021 00:51:52 +0200
Subject: Morphed repo to stow structure. Added a bunch of configs in the
process.
---
stow/vim/dot-vim/ftplugin/antlr/antlr3.vim | 91 ++++++++++++++++++++++
stow/vim/dot-vim/ftplugin/antlr/antlr4.vim | 76 ++++++++++++++++++
stow/vim/dot-vim/ftplugin/asciidoc/asciidoc.vim | 19 +++++
stow/vim/dot-vim/ftplugin/cpp/cpp.vim | 28 +++++++
stow/vim/dot-vim/ftplugin/cpp/snips/template.txt | 6 ++
stow/vim/dot-vim/ftplugin/css/css.vim | 20 +++++
stow/vim/dot-vim/ftplugin/html/html.vim | 78 +++++++++++++++++++
stow/vim/dot-vim/ftplugin/html/snips/template.txt | 12 +++
stow/vim/dot-vim/ftplugin/java/java.vim | 14 ++++
.../vim/dot-vim/ftplugin/javascript/javascript.vim | 38 +++++++++
stow/vim/dot-vim/ftplugin/plantuml/plantuml.vim | 20 +++++
.../dot-vim/ftplugin/plantuml/snips/template.txt | 9 +++
stow/vim/dot-vim/ftplugin/python/python.vim | 34 ++++++++
stow/vim/dot-vim/ftplugin/python/snips/class | 3 +
stow/vim/dot-vim/ftplugin/python/snips/template | 5 ++
stow/vim/dot-vim/ftplugin/sent/sent.vim | 19 +++++
stow/vim/dot-vim/ftplugin/sh/sh.vim | 16 ++++
stow/vim/dot-vim/ftplugin/sh/snippets/if.txt | 3 +
stow/vim/dot-vim/ftplugin/tex/snips/template.txt | 30 +++++++
stow/vim/dot-vim/ftplugin/tex/tex.vim | 45 +++++++++++
stow/vim/dot-vim/ftplugin/text/text.vim | 20 +++++
.../vim/dot-vim/ftplugin/typescript/typescript.vim | 33 ++++++++
.../dot-vim/ftplugin/vimwiki/snips/plantUml.txt | 5 ++
.../dot-vim/ftplugin/vimwiki/snips/template.txt | 15 ++++
stow/vim/dot-vim/ftplugin/vimwiki/vimwiki.vim | 39 ++++++++++
25 files changed, 678 insertions(+)
create mode 100644 stow/vim/dot-vim/ftplugin/antlr/antlr3.vim
create mode 100644 stow/vim/dot-vim/ftplugin/antlr/antlr4.vim
create mode 100644 stow/vim/dot-vim/ftplugin/asciidoc/asciidoc.vim
create mode 100644 stow/vim/dot-vim/ftplugin/cpp/cpp.vim
create mode 100644 stow/vim/dot-vim/ftplugin/cpp/snips/template.txt
create mode 100644 stow/vim/dot-vim/ftplugin/css/css.vim
create mode 100644 stow/vim/dot-vim/ftplugin/html/html.vim
create mode 100644 stow/vim/dot-vim/ftplugin/html/snips/template.txt
create mode 100644 stow/vim/dot-vim/ftplugin/java/java.vim
create mode 100644 stow/vim/dot-vim/ftplugin/javascript/javascript.vim
create mode 100644 stow/vim/dot-vim/ftplugin/plantuml/plantuml.vim
create mode 100644 stow/vim/dot-vim/ftplugin/plantuml/snips/template.txt
create mode 100644 stow/vim/dot-vim/ftplugin/python/python.vim
create mode 100644 stow/vim/dot-vim/ftplugin/python/snips/class
create mode 100644 stow/vim/dot-vim/ftplugin/python/snips/template
create mode 100644 stow/vim/dot-vim/ftplugin/sent/sent.vim
create mode 100644 stow/vim/dot-vim/ftplugin/sh/sh.vim
create mode 100644 stow/vim/dot-vim/ftplugin/sh/snippets/if.txt
create mode 100644 stow/vim/dot-vim/ftplugin/tex/snips/template.txt
create mode 100644 stow/vim/dot-vim/ftplugin/tex/tex.vim
create mode 100644 stow/vim/dot-vim/ftplugin/text/text.vim
create mode 100644 stow/vim/dot-vim/ftplugin/typescript/typescript.vim
create mode 100644 stow/vim/dot-vim/ftplugin/vimwiki/snips/plantUml.txt
create mode 100644 stow/vim/dot-vim/ftplugin/vimwiki/snips/template.txt
create mode 100644 stow/vim/dot-vim/ftplugin/vimwiki/vimwiki.vim
(limited to 'stow/vim/dot-vim/ftplugin')
diff --git a/stow/vim/dot-vim/ftplugin/antlr/antlr3.vim b/stow/vim/dot-vim/ftplugin/antlr/antlr3.vim
new file mode 100644
index 0000000..10e24e5
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/antlr/antlr3.vim
@@ -0,0 +1,91 @@
+" vim: ts=8
+" Vim syntax file
+" Language: ANTLRv3
+" Maintainer: Jörn Horstmann (updated by Davyd Madeley)
+" Last Change: 2008-11-21
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+syn keyword antlrKeyword grammar lexer parser tree header members options fragment returns throws scope init
+
+syn match antlrCharacter '\\\(r\|n\|t\|f\|b\|"\|\'\|\\\|u\x\{4}\)' contained display
+
+syn match antlrToken "\<[A-Z_][a-zA-Z_0-9]\+\>"
+syn match antlrRule "[a-z][a-zA-Z_0-9]\+"
+syn match antlrScopeVariable '$\k\+::\k\+'
+
+syn match antlrOperator "[:;@.]"
+syn match antlrOperator "[()]"
+syn match antlrOperator "[?+*~|!]"
+syn match antlrOperator "[->=^]"
+
+syn match antlrBrace "[{}]"
+syn match antlrBrace "[\[\]]"
+syn region antlrAction matchgroup=antlrBrace start="[{\[]" end="[}\]]" contains=antlrVariable,antlrLiteral,antlrComment
+syn match antlrVariable contained "$[a-zA-Z][a-zA-Z_0-9]*"
+
+syn region antlrLiteral start=+'+ end=+'+ contains=antlrCharacter
+syn region antlrLiteral start=+"+ end=+"+ contains=antlrCharacter
+
+syn region antlrComment start="/\*" end="\*/"
+syn match antlrComment "//.*$"
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508
+ if version < 508
+ let did_antlr_syntax_inits = 1
+ command -nargs=+ HiLink hi link
+ else
+ command -nargs=+ HiLink hi def link
+ endif
+
+ HiLink antlrLiteral String
+ hi def antlrVariable term=bold cterm=bold gui=bold
+ HiLink antlrBrace Operator
+ HiLink antlrCharacter Special
+ HiLink antlrComment Comment
+ HiLink antlrOperator Operator
+ HiLink antlrKeyword Keyword
+ HiLink antlrToken PreProc
+ HiLink antlrScopeVariable Identifier
+ HiLink antlrRule Type
+
+ delcommand HiLink
+endif
+
+" try to figure out the target language
+let target_languages = []
+" can we figure out from the file name
+let extensions = split(expand('%:t'), '\.')
+if len(extensions) >= 3
+ " great.. the target language was provided via file name
+ call add(target_languages, tolower(extensions[-2]))
+else
+ " no multiple extensions... have to figure out from the content
+ let buffer = join(getline(1, line('$')), "\n")
+ let antlr_options = matchstr(buffer, '\m\(\_s\|;\)options\_s\+{\_.\{-\}}')
+ call substitute(antlr_options, '\mlanguage\_s*=\_s*''\?\(.\{-\}\)''\?\_s*;', '\=add(target_languages, tolower(submatch(1)))', 'g')
+endif
+if exists('target_languages[-1]')
+ " the last defined target language takes precendece
+ let lang=target_languages[-1]
+ let syntax_file = findfile('syntax/' . lang . '.vim', &rtp, 1)
+ if syntax_file != ''
+ " if a valid syntax file was found only
+ let b:current_syntax = ''
+ unlet b:current_syntax
+ let region_name = '@' . lang . 'Language'
+ exe 'syntax include ' . region_name . ' ' . syntax_file
+ exe 'syntax region ' . lang . ' start="{" end="}" keepend contains=' . region_name
+ endif
+endif
+
+let b:current_syntax = "antlr3"
diff --git a/stow/vim/dot-vim/ftplugin/antlr/antlr4.vim b/stow/vim/dot-vim/ftplugin/antlr/antlr4.vim
new file mode 100644
index 0000000..456076c
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/antlr/antlr4.vim
@@ -0,0 +1,76 @@
+" vim: ts=8
+" Vim syntax file
+" Language: ANTLRv4
+" Maintainer: Jörn Horstmann (updated by Dylon Edwards)
+" Last Change: 2015-12-15
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+syn keyword antlrKeyword import fragment lexer parser grammar returns locals throws catch finally mode options tokens header members init after channels mode protected public private
+
+syn keyword antlrReserved rule
+
+syn match antlrCharacter '\\\(r\|n\|t\|f\|b\|"\|\'\|\\\|u\x\{4}\)' contained display
+
+syn match antlrToken "\<[A-Z_][a-zA-Z_0-9]\+\>"
+syn match antlrRule "[a-z][a-zA-Z_0-9]\+"
+syn match antlrScopeVariable '$\k\+::\k\+'
+
+syn match antlrOperator "[:;@.]"
+syn match antlrOperator "[()]"
+syn match antlrOperator "[?+*~|!]"
+syn match antlrOperator "[->=^]"
+
+syn match antlrBlock "[{}]"
+syn region antlrAction matchgroup=antlrBlock start="{" end="}" contains=antlrVariable,antlrAction
+syn match antlrVariable contained "$[a-zA-Z][a-zA-Z_0-9]*"
+
+syn include @JAVA syntax/java.vim
+syn region ANTLR4EmbeddedJavaAction matchgroup=antlrBlock start="{" end="}" contains=@JAVA,antlrVariable containedin=antlrAction
+
+syn keyword antlrOperations pushMode popMode skip channel
+
+syn match antlrBrace "[\[\]]"
+syn region antlrCharClass matchgroup=antlrBrace start="\[" end="\]" contains=antlrCharacter
+
+syn region antlrLiteral start=+'+ end=+'+ contains=antlrCharacter
+syn region antlrLiteral start=+"+ end=+"+ contains=antlrCharacter
+
+syn region antlrComment start="/\*" end="\*/"
+syn match antlrComment "//.*$"
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508
+ if version < 508
+ let did_antlr_syntax_inits = 1
+ command -nargs=+ HiLink hi link
+ else
+ command -nargs=+ HiLink hi def link
+ endif
+
+ HiLink antlrReserved Error
+ HiLink antlrOperations Identifier
+ HiLink antlrLiteral String
+ hi def antlrVariable term=bold cterm=bold gui=bold
+ HiLink antlrBrace Operator
+ HiLink antlrBlock Operator
+ HiLink antlrCharacter Special
+ HiLink antlrComment Comment
+ HiLink antlrOperator Operator
+ HiLink antlrKeyword Keyword
+ HiLink antlrToken PreProc
+ HiLink antlrScopeVariable Identifier
+ HiLink antlrRule Type
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "antlr4"
diff --git a/stow/vim/dot-vim/ftplugin/asciidoc/asciidoc.vim b/stow/vim/dot-vim/ftplugin/asciidoc/asciidoc.vim
new file mode 100644
index 0000000..b94b875
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/asciidoc/asciidoc.vim
@@ -0,0 +1,19 @@
+" ~/.vim/ftplugin/asciidoc/asciidoc.vim
+" asciidoc vim configuration
+"
+" Syntastic linter: proselint
+
+" Tabs hate: tabs are expanded to 2 spaces
+setlocal tabstop=2 shiftwidth=2 expandtab
+" Show existing tabs (they can be deleted with :retab)
+setlocal list
+
+" Column marker: 80 characters
+" call matchadd('ColorColumn', '\%81v', 100)
+setlocal textwidth=80
+
+nnoremap C :sp ~/.vim/ftplugin/asciidoc/asciidoc.vim
+
+" Proselint is slow to act
+nnoremap sp :SyntasticCheck proselint
+nnoremap e :Errors
diff --git a/stow/vim/dot-vim/ftplugin/cpp/cpp.vim b/stow/vim/dot-vim/ftplugin/cpp/cpp.vim
new file mode 100644
index 0000000..e2072c1
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/cpp/cpp.vim
@@ -0,0 +1,28 @@
+" ~/.vim/ftplugin/cpp/cpp.vim
+" C++-specific vim configuration
+
+let mapleader = " "
+
+" Column marker: 80 characters
+match ColorColumn /\%81v/
+setlocal textwidth=80
+
+nnoremap C :sp ~/.vim/ftplugin/cpp/cpp.vim
+nnoremap E :Errors
+
+nnoremap c :w:!g++ "%"; ./a.out
+
+nnoremap gd :YcmCompleter GoTo
+nnoremap gr :YcmCompleter GoToReferences
+nnoremap gh :YcmCompleter GetType
+nnoremap gD :YcmCompleter GetDoc
+nnoremap gR :YcmCompleter RefactorRename
+nnoremap fi :YcmCompleter FixIt
+nnoremap e :YcmDiags
+
+nnoremap temp :-1r ~/.vim/ftplugin/cpp/snips/template.txtGdd?<+++>cf>
+
+let mapleader = ","
+
+inoremap if if (<+++>) {<++>}?<+++>cf>
+inoremap for for (<+++>; <++>; <++>) {<++>}?<+++>cf>
diff --git a/stow/vim/dot-vim/ftplugin/cpp/snips/template.txt b/stow/vim/dot-vim/ftplugin/cpp/snips/template.txt
new file mode 100644
index 0000000..90ef863
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/cpp/snips/template.txt
@@ -0,0 +1,6 @@
+#include
+
+int main() {
+ <+++>
+ return 0;
+}
diff --git a/stow/vim/dot-vim/ftplugin/css/css.vim b/stow/vim/dot-vim/ftplugin/css/css.vim
new file mode 100644
index 0000000..695243c
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/css/css.vim
@@ -0,0 +1,20 @@
+" ~/.vim/ftplugin/css/css.vim
+" CSS-specific vim configuration
+"
+" Syntastic linters: csslint, prettycss, sstylelint
+
+"let g:syntastic_css_csslint_args = "--ignore=order-alphabetical,ids"
+
+setlocal textwidth=80
+call matchadd('ColorColumn', '\%81v', 100)
+
+" Tabs are expanded to 2 spaces
+setlocal tabstop=2 shiftwidth=2 expandtab
+" Don't show existing tabs
+setlocal nolist
+
+" Mappings
+nnoremap C :sp ~/.vim/ftplugin/css/css.vim
+nnoremap e :Errors
+nnoremap s vi{!sort
+
diff --git a/stow/vim/dot-vim/ftplugin/html/html.vim b/stow/vim/dot-vim/ftplugin/html/html.vim
new file mode 100644
index 0000000..41890b4
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/html/html.vim
@@ -0,0 +1,78 @@
+" ~/.vim/ftplugin/html/html.vim
+" HTML-specific vim configuration
+"
+" Syntastic linter: tidy
+
+" Tabs are expanded to 2 spaces
+setlocal tabstop=2 shiftwidth=2 expandtab
+" Show existing tabs (they can be deleted with :retab)
+setlocal list
+
+" Column marker: 100 characters
+call matchadd('ColorColumn', '\%101v', 100)
+setlocal textwidth=100
+
+let mapleader = " "
+
+nnoremap o :!$BROWSER % &
+nnoremap f :!firefox --new-window % &
+nnoremap C :sp ~/.vim/ftplugin/html/html.vim
+nnoremap e :Errors
+
+nnoremap temp :-1r ~/.vim/ftplugin/html/snips/template.txtGdd?<+++>cf>
+
+let mapleader = ","
+
+" Layout elements
+inoremap hheader <++>kki
+inoremap hnav <++>kki
+inoremap hsection <++>kki
+inoremap harticle <++>kki
+inoremap hfooter <++>kki
+inoremap haside <++>kki
+inoremap hdiv <++>
<++>?""a
+
+" Headers and paragraphs
+inoremap hh1 <++>?i
+inoremap hh2 <++>?i
+inoremap hh3 <++>?i
+inoremap hh4 <++>?i
+inoremap hh5 <++>?i
+inoremap hh6 <++>?i
+inoremap hp <++>?
i
+
+" Text formatting
+inoremap hb <++>?i
+inoremap hi <++>?i
+inoremap hem <++>?i
+inoremap hcode
<++>?i
+inoremap hsub <++>?i
+inoremap hsup <++>?i
+inoremap hcite <++>?i
+
+" Tables
+inoremap htable <++>?""a
+inoremap htr
<++>kki
+inoremap hth | <++>?i
+inoremap htd | <++>?i
+
+" Lists
+inoremap hul <++>?i
+inoremap hol <++>
<++>?i
+inoremap hli <++>?i
+
+" Forms
+inoremap hform <++>3ki
+inoremap hfs <++>kki
+inoremap hlegend <++>?i
+inoremap hlabel <++>?i
+
+" Media
+inoremap ha <++><++>?""a
+inoremap himg <++>?""a
+
+" Misc
+" Comment a line
+nnoremap hc I0
+" Uncomment a line
+nnoremap hC 05x/-->3x0
diff --git a/stow/vim/dot-vim/ftplugin/html/snips/template.txt b/stow/vim/dot-vim/ftplugin/html/snips/template.txt
new file mode 100644
index 0000000..38d9f26
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/html/snips/template.txt
@@ -0,0 +1,12 @@
+
+
+
+ <+++>
+
+
+
+
+ <++>
+
+
+
diff --git a/stow/vim/dot-vim/ftplugin/java/java.vim b/stow/vim/dot-vim/ftplugin/java/java.vim
new file mode 100644
index 0000000..2595b32
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/java/java.vim
@@ -0,0 +1,14 @@
+" ~/.vim/ftplugin/java.vim
+" Java-specific vim configuration
+
+call matchadd('ColorColumn', '\%131v', 100)
+
+let g:syntastic_java_checkers = []
+
+nnoremap gt :YcmCompleter GoTo
+nnoremap gr :YcmCompleter GoToReferences
+nnoremap fi :YcmCompleter FixIt
+nnoremap rr :YcmCompleter RefactorRename
+nnoremap e :YcmDiags
+nnoremap R :!./run.sh
+
diff --git a/stow/vim/dot-vim/ftplugin/javascript/javascript.vim b/stow/vim/dot-vim/ftplugin/javascript/javascript.vim
new file mode 100644
index 0000000..4935410
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/javascript/javascript.vim
@@ -0,0 +1,38 @@
+" ~/.vim/ftplugin/javascript/javascript.vim
+" JavaScript-specific vim configuration
+"
+" Syntastic linters: jslint
+
+" JSLint arguments
+" let g:syntastic_javascript_jslint_args = "--browser --indent"
+
+" ALE
+let b:ale_linters = ['eslint']
+
+" Tabs are expanded to 4 spaces
+setlocal tabstop=4 shiftwidth=4 expandtab
+" Show existing tabs (they can be deleted with :retab)
+setlocal list
+
+" Column marker: 110 characters
+call matchadd('ColorColumn', '\%111v', 100)
+setlocal textwidth=110
+
+" Mappings
+
+let mapleader = " "
+
+nnoremap C :sp ~/.vim/ftplugin/javascript/javascript.vim
+
+nnoremap gd :YcmCompleter GoTo
+nnoremap gr :YcmCompleter GoToReferences
+nnoremap gh :YcmCompleter GetType
+nnoremap gD :YcmCompleter GetDoc
+nnoremap gR :YcmCompleter RefactorRename
+nnoremap fi :YcmCompleter FixIt
+nnoremap e :YcmDiags
+
+let mapleader = ","
+
+inoremap if if (<+++>) {<++>} <++>?<+++>cf>
+inoremap else else {<+++>}<++>?<+++>cf>
diff --git a/stow/vim/dot-vim/ftplugin/plantuml/plantuml.vim b/stow/vim/dot-vim/ftplugin/plantuml/plantuml.vim
new file mode 100644
index 0000000..5bab6a2
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/plantuml/plantuml.vim
@@ -0,0 +1,20 @@
+" ~/.vim/ftplugin/plantuml/plantuml.vim
+" PlantUML-specific vim configuration
+
+" Tabs hate: tabs are expanded to 4 spaces
+setlocal tabstop=4 shiftwidth=4 expandtab
+" Show existing tabs (they can be deleted with :retab)
+setlocal list
+
+" Column marker: 80 characters
+call matchadd('ColorColumn', '\%81v', 100)
+setlocal textwidth=80
+
+let mapleader = " "
+
+nnoremap temp :-1r ~/.vim/ftplugin/plantuml/snips/template.txtGdd?<+++>cf>
+
+nnoremap C :sp ~/.vim/ftplugin/plantuml/plantuml.vim
+
+nnoremap c :w:!compilePlantUML.sh "%"
+nnoremap o :w:!compilePlantUML.sh -o "%"
diff --git a/stow/vim/dot-vim/ftplugin/plantuml/snips/template.txt b/stow/vim/dot-vim/ftplugin/plantuml/snips/template.txt
new file mode 100644
index 0000000..f649539
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/plantuml/snips/template.txt
@@ -0,0 +1,9 @@
+@startuml
+
+class <+++> {
+ <++>
+}
+
+<++>
+
+@enduml
diff --git a/stow/vim/dot-vim/ftplugin/python/python.vim b/stow/vim/dot-vim/ftplugin/python/python.vim
new file mode 100644
index 0000000..358f902
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/python/python.vim
@@ -0,0 +1,34 @@
+" ~/.vim/ftplugin/python/python.vim
+" Python-specific vim configuration
+
+" Tabs are expanded to 4 spaces
+setlocal tabstop=4 shiftwidth=4 expandtab
+" Show existing tabs (they can be deleted with :retab)
+setlocal list
+
+" Column marker: 90 characters
+call matchadd('ColorColumn', '\%91v', 100)
+setlocal textwidth=90
+
+let b:ale_python_pylint_options = '-d invalid-name'
+
+" Mappings
+
+let mapleader = " "
+
+nnoremap C :sp ~/.vim/ftplugin/python/python.vim
+nnoremap x :! ./%
+nnoremap X :! ./%
+
+nnoremap gd :YcmCompleter GoTo
+nnoremap gr :YcmCompleter GoToReferences
+nnoremap gR :YcmCompleter RefactorRename
+nnoremap gd :YcmCompleter GetDoc
+nnoremap gT :YcmCompleter GetType
+
+nnoremap db :!tmux split-window -l '40\%' 'python -m̀ pdb %'
+
+let mapleader = ","
+
+inoremap temp :-1r ~/.vim/ftplugin/python/snips/templateGdd?<+++>cf>
+inoremap class :-1r ~/.vim/ftplugin/python/snips/classGdd?<+++>cf>
diff --git a/stow/vim/dot-vim/ftplugin/python/snips/class b/stow/vim/dot-vim/ftplugin/python/snips/class
new file mode 100644
index 0000000..0febf0c
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/python/snips/class
@@ -0,0 +1,3 @@
+class <+++>:
+ def __init__(<++>):
+ self.<++> = <++>
diff --git a/stow/vim/dot-vim/ftplugin/python/snips/template b/stow/vim/dot-vim/ftplugin/python/snips/template
new file mode 100644
index 0000000..d10fa4a
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/python/snips/template
@@ -0,0 +1,5 @@
+#!/usr/bin/python
+
+"""<+++>"""
+
+<++>
diff --git a/stow/vim/dot-vim/ftplugin/sent/sent.vim b/stow/vim/dot-vim/ftplugin/sent/sent.vim
new file mode 100644
index 0000000..c9cc974
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/sent/sent.vim
@@ -0,0 +1,19 @@
+" ~/.vim/ftplugin/sent/sent.vim
+" Vim configuration for writing sent presentations
+
+" Tabs hate: tabs are expanded to 4 spaces
+setlocal tabstop=4 shiftwidth=4 expandtab
+" Show existing tabs (they can be deleted with :retab)
+setlocal list
+
+call matchadd('ColorColumn', '\%41v', 100)
+setlocal textwidth=40
+
+setlocal spell
+
+let mapleader = " "
+
+nnoremap C :sp ~/.vim/ftplugin/sent/sent.vim
+
+nnoremap c :w:!killall sent :!sent % &
+nnoremap o :w:!sent % &
diff --git a/stow/vim/dot-vim/ftplugin/sh/sh.vim b/stow/vim/dot-vim/ftplugin/sh/sh.vim
new file mode 100644
index 0000000..3eb4da5
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/sh/sh.vim
@@ -0,0 +1,16 @@
+" ~/.vim/ftplugin/sh.vim
+" Bourne shell scripts specific vim configuration
+"
+" Linters: sh, shellcheck
+
+call matchadd('ColorColumn', '\%111v', 100)
+setlocal textwidth=110
+
+nnoremap C :sp ~/.vim/ftplugin/sh/sh.vim
+nnoremap +x :!chmod 744 %
+nnoremap x :w:!./%
+nnoremap e :Errors
+
+inoremap sh #!/bin/sh
+inoremap if if <+++>; then<++>fi<++>?<+++>cf>
+"inoremap if :read ~/.vim/ftplugin/sh/snippets/if.txtkdd/<+++>cf>
diff --git a/stow/vim/dot-vim/ftplugin/sh/snippets/if.txt b/stow/vim/dot-vim/ftplugin/sh/snippets/if.txt
new file mode 100644
index 0000000..9f6bb88
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/sh/snippets/if.txt
@@ -0,0 +1,3 @@
+if <+++>; then
+ <++>
+fi<++>
diff --git a/stow/vim/dot-vim/ftplugin/tex/snips/template.txt b/stow/vim/dot-vim/ftplugin/tex/snips/template.txt
new file mode 100644
index 0000000..1f4bd46
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/tex/snips/template.txt
@@ -0,0 +1,30 @@
+\documentclass{article}
+
+\usepackage{geometry}
+\usepackage{graphicx}
+\usepackage{booktabs}
+
+\geometry{left=4.5cm,top=2cm,bottom=2cm,right=4.5cm}
+
+\renewcommand{\contentsname}{Contenidos}
+\renewcommand{\figurename}{Figura}
+
+\begin{document}
+
+\frenchspacing
+
+\title{<+++>}
+
+\author{<++>}
+
+\date{}
+
+\maketitle
+
+\tableofcontents
+
+\section{<++>}
+
+<++>
+
+\end{document}
diff --git a/stow/vim/dot-vim/ftplugin/tex/tex.vim b/stow/vim/dot-vim/ftplugin/tex/tex.vim
new file mode 100644
index 0000000..87f3c88
--- /dev/null
+++ b/stow/vim/dot-vim/ftplugin/tex/tex.vim
@@ -0,0 +1,45 @@
+" ~/.vim/ftplugin/tex.vim
+" LaTeX-specific vim configuration
+
+" Syntastic linters: chktex, lacheck, proselint
+
+call matchadd('ColorColumn', '\%91v', 100)
+setlocal textwidth=80
+
+let mapleader = " "
+
+nnoremap C :sp ~/.vim/ftplugin/tex/tex.vim
+nnoremap e :Errors
+" proselint not enabled by default (it's slow)
+"nnoremap sp :SyntasticCheck proselint
+
+nnoremap c :w:!toPDF.sh %
+nnoremap o :w:!toPDF.sh -o %