Last active
January 10, 2017 10:40
-
-
Save ZelphirKaltstahl/73daeff0ccafc141e913e42dd189b435 to your computer and use it in GitHub Desktop.
.vimrc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" automatically install vim-plug if git is available | |
if empty(glob('~/.vim/autoload/plug.vim')) | |
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs | |
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim | |
autocmd VimEnter * PlugInstall | source $MYVIMRC | |
endif | |
call plug#begin('~/.vim/plugged') | |
" ===== FUNCTIONALITY ===== | |
Plug 'wlangstroth/vim-racket' | |
Plug 'MicahElliott/vrod' | |
Plug 'klen/python-mode' | |
Plug 'tpope/vim-sensible' | |
" Plug 'https://github.com/kovisoft/slimv.git' | |
Plug 'scrooloose/nerdtree' | |
Plug 'ervandew/supertab' | |
Plug 'tpope/vim-obsession' | |
Plug 'terryma/vim-multiple-cursors' | |
Plug 'vim-scripts/ttfzoom' | |
" Plug 'powerline/powerline' | |
" ===== LANGUAGE SUPPORT ===== | |
" Plug 'jtratner/vim-flavored-markdown' | |
" Plug 'tpope/vim-markdown' | |
Plug 'vim-pandoc/vim-pandoc-syntax' | |
Plug 'vim-pandoc/vim-pandoc' | |
Plug 'vim-scripts/rest.vim' | |
Plug 'Glench/Vim-Jinja2-Syntax' | |
Plug 'dhruvasagar/vim-table-mode' | |
" ===== SNIPPETS ===== | |
Plug 'MarcWeber/vim-addon-mw-utils' | |
Plug 'tomtom/tlib_vim' | |
Plug 'garbas/vim-snipmate' | |
Plug 'honza/vim-snippets' | |
" ===== COLORSCHEMES ===== | |
Plug 'chriskempson/vim-tomorrow-theme' | |
Plug 'tomasr/molokai' | |
Plug 'altercation/vim-colors-solarized' | |
Plug 'chriskempson/base16-vim' | |
Plug 'nickburlett/vim-colors-stylus' | |
Plug 'sickill/vim-monokai' | |
Plug 'tyrannicaltoucan/vim-quantum' | |
Plug 'hericks/vimicks' | |
Plug 'vim-scripts/kate.vim' | |
Plug 'AlessandroYorba/Despacio' | |
Plug 'josuegaleas/jay' | |
Plug 'mbbill/vim-seattle' | |
Plug 'jacoborus/tender.vim' | |
Plug 'NLKNguyen/papercolor-theme' | |
" ===== PARENS ===== | |
Plug 'kien/rainbow_parentheses.vim' | |
" Add plugins to &runtimepath | |
call plug#end() | |
" ===== MY FUNCTIONS ===== | |
function ActivateSyntaxHighlighting() | |
syntax on | |
syntax enable | |
endfunction | |
function SetTabWidth(width, softorhard) | |
set expandtab | |
set smarttab | |
let &g:tabstop = a:width | |
let &g:shiftwidth = a:width | |
let &g:showtabline = a:width | |
let &g:softtabstop = a:softorhard | |
endfunction | |
function SetMarkdownOptions() | |
""" COLORSCHEME | |
colorscheme quantum | |
set background=light | |
""" SPELL CHECKING COLORS | |
hi clear SpellBad | |
hi SpellBad cterm=underline,bold ctermfg=204 ctermbg=NONE | |
hi SpellCap cterm=underline,bold ctermfg=LightBlue ctermbg=NONE | |
syn match UrlNoSpell "\w\+:\/\/[^[:space:]]\+" contains=@NoSpell | |
""" LANGUAGE | |
set spelllang=de_de,en_us | |
set spellfile=~/.vim/spell/master-thesis.utf-8.add | |
""" KEYWORDS | |
set iskeyword=38,42,43,45,47-57,60-62,_,@ | |
""" TABS | |
call SetTabWidth(4, 1) | |
"syn match myExCapitalWords +\<\w*[A-Z]\K*\>\|'s+ contains=@NoSpell | |
nnoremap <Tab> <Nop> | |
endfunction | |
function SetReStructuredTextOptions() | |
let g:table_mode_corner_corner="+" | |
let g:table_mode_header_fillchar="=" | |
""" COLORSCHEME | |
colorscheme quantum | |
set background=light | |
""" SPELL CHECKING COLORS | |
hi clear SpellBad | |
hi SpellBad cterm=underline,bold ctermfg=204 ctermbg=NONE | |
hi SpellCap cterm=underline,bold ctermfg=LightBlue ctermbg=NONE | |
syn match UrlNoSpell "\w\+:\/\/[^[:space:]]\+" contains=@NoSpell | |
""" LANGUAGE | |
set spelllang=de_de,en_us | |
set spellfile=~/.vim/spell/master-thesis.utf-8.add | |
""" KEYWORDS | |
set iskeyword=38,42,43,45,47-57,60-62,_,@ | |
""" TABS | |
call SetTabWidth(2, 1) | |
"syn match myExCapitalWords +\<\w*[A-Z]\K*\>\|'s+ contains=@NoSpell | |
nnoremap <Tab> <Nop> | |
endfunction | |
function SetRacketOptions() | |
colorscheme quantum | |
call SetTabWidth(2, 1) | |
hi MatchParen cterm=bold ctermbg=none ctermfg=46 | |
endfunction | |
function SetPythonOptions() | |
set iskeyword=38,42,43,45,47-57,60-62,_,@ | |
call SetTabWidth(4, 1) | |
hi MatchParen cterm=bold ctermbg=none ctermfg=46 | |
let g:pymode_lint_checkers = ["pep0"] " pep8, pep257, pyflakes | |
let g:pymode_lint_ignore = "W191, D100, D401, D103" " D101, D102 | |
nnoremap <Tab> <Nop> | |
let g:pymode_python = 'python3' | |
endfunction | |
function KeyComboOptions() | |
map q <Nop> | |
nnoremap <Up> gk | |
nnoremap <Down> gj | |
nnoremap <F3> :noh<CR> | |
vnoremap <silent> # :s/^/#/<cr>:noh<cr> | |
vnoremap <silent> -# :s/^#//<cr>:noh<cr> | |
noremap <c-s-up> ddkP | |
inoremap <c-s-up> ddkP | |
noremap <c-s-down> ddp | |
inoremap <c-s-down> ddp | |
map <F8> :NERDTreeToggle<CR> | |
noremap <c-t> :tabe<cr> | |
noremap <c-s-i> G=gg | |
inoremap <C-c> <Esc><Esc> | |
inoremap <C-s> <Esc><Esc>:w<CR> | |
noremap <C-s> <Esc><Esc>:w<CR> | |
vnoremap <C-s> <Esc><Esc>:w<CR> | |
xnoremap <leader>( xi()<Esc>P | |
xnoremap <leader>[ xi[]<Esc>P | |
xnoremap <leader>{ xi{}<Esc>P | |
xnoremap <leader>' xi''<Esc>P | |
xnoremap <leader>" xi""<Esc>P | |
inoremap <expr> <down> ((pumvisible())?("\<C-n>"):("\<down>")) | |
inoremap <expr> <up> ((pumvisible())?("\<C-p>"):("\<up>")) | |
map <C-h> :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<CR> | |
map <C-f> :echo synIDattr(synIDtrans(synID(line("."), col("."), 1)), "fg")<CR> | |
command W w | |
" line numbers | |
noremap <C-l>y :set number<CR> | |
noremap <C-l>n :set nonumber<CR> | |
" timestamp | |
":nnoremap <F5> "=strftime("%c")<CR>P | |
inoremap <C-t> <C-R>=strftime("%Y-%m-%d-%H:%M:%S")<CR> | |
" toggle spell checking | |
inoremap <F5> <Esc>:set spell!<CR>i | |
noremap <F5> :set spell!<CR> | |
endfunction | |
" http://stackoverflow.com/a/38258720/1829329 | |
" automatically set paste when pasting | |
let &t_SI .= "\<Esc>[?2004h" | |
let &t_EI .= "\<Esc>[?2004l" | |
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin() | |
function! XTermPasteBegin() | |
set pastetoggle=<Esc>[201~ | |
set paste | |
return "" | |
endfunction | |
" ===== AUTOCOMMANDS ===== | |
augroup pandoc_syntax | |
au! BufNewFile,BufFilePRe,BufRead *.md set filetype=markdown.pandoc | |
augroup END | |
autocmd BufEnter,BufNewFile,TabEnter *.md call SetMarkdownOptions() | |
autocmd BufEnter,BufNewFile,TabEnter *.rst call SetReStructuredTextOptions() | |
autocmd BufEnter,BufNewFile,TabEnter *.rkt call SetRacketOptions() | |
autocmd BufEnter,BufNewFile,TabEnter *.py call SetPythonOptions() | |
" ===== DISABLE ROPE IN PYTHON MODE ===== | |
let g:pymode_rope = 0 | |
" ===== TABLES ===== | |
let g:table_mode_corner_corner="+" | |
let g:table_mode_header_fillchar="=" | |
let g:table_mode_align_char=":" | |
let g:table_mode_syntax=0 | |
" ===== automatically change directory to the current file ===== | |
set autochdir | |
" ===== LOCALE SETTINGS ===== | |
set encoding=utf-8 | |
" ===== WORD CHARACTERS ===== | |
" german stuff | |
set iskeyword=38,42,43,45,47-58,60-62,_,@ | |
" ===== FONT SETTINGS ===== | |
set guifont=Inconsolatas\ LGC:h10 | |
" ===== LINE BREAKS ===== | |
set wrap linebreak nolist | |
" ===== COLORSCHEMES ===== | |
set term=xterm | |
set t_Co=256 | |
call ActivateSyntaxHighlighting() | |
colorscheme quantum | |
" ===== RAINBOW PARENTHESES ===== | |
" activate rainbow parentheses | |
"au VimEnter * RainbowParenthesesToggle | |
"au Syntax * RainbowParenthesesLoadRound | |
"au Syntax * RainbowParenthesesLoadSquare | |
"au Syntax * RainbowParenthesesLoadBraces | |
" ===== NERD TREE ===== | |
" NerdTree automatically opened | |
" autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif | |
" ===== TABS ===== | |
call SetTabWidth(4, 1) | |
filetype plugin on | |
set omnifunc=syntaxcomplete#Complete | |
filetype indent on | |
call KeyComboOptions() | |
" ===== SEARCH ===== | |
set hlsearch | |
" ===== LINE NUMBERS ===== | |
set number | |
" ===== CURSOR ===== | |
autocmd InsertEnter * set cul | |
autocmd InsertLeave * set nocul | |
" ===== MOUSE ===== | |
"set mouse=n | |
"set ttymouse=xterm2 | |
" ===== FOLDING ===== | |
set foldmethod=indent | |
set foldnestmax=10 | |
set nofoldenable | |
set foldlevel=2 | |
" ===== LANGUAGE ===== | |
set spelllang=en_us | |
" set spelllang=de_de | |
" ===== DISPLAY WHITESPACE CHARS ===== | |
set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:< | |
",space:␣ | |
set list |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment