" " ██╗ ██╗██╗███╗ ███╗ " ██║ ██║██║██╔███╗██║ " ╚═███╔═╝██║██║╚══╝██║ " ╚══╝ ╚═╝╚═╝ ╚═╝ " " Vundle " set nocompatible " be iMproved, required for plugins filetype off " required set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' " Plugin 'ycm-core/YouCompleteMe' " Plugin 'metakirby5/codi.vim' call vundle#end() " required filetype plugin indent on " required syntax on set relativenumber set number set autoindent set splitbelow set splitright set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc,.png,.jpg set tags+=tags;$HOME inoremap inoremap jj " Jump between splits nnoremap nnoremap nnoremap nnoremap nnoremap >f viwc:set ri":set nori vnoremap \f c:set ri":set nori autocmd BufWinLeave *.* mkview autocmd BufWinEnter *.* silent loadview " Expand % to the current file's dir cabbr %% expand('%:p:h') set viewoptions-=options set nohlsearch " Save with sudo cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit! " Paste last yank (that is, not delete) nnoremap "p "0p " Map directions to end/beginning of lines nnoremap yl y$ nnoremap dl d$ nnoremap yh y^ nnoremap dh d^ nnoremap v :tabedit ~/.vimrc nnoremap n :tabedit ~/.notes nnoremap p :call Build(0) nnoremap b :call Build(1) function! Build(just_build) write if(&ft=='lisp') !clisp % elseif(&ft=='ruby') !ruby % elseif(&ft=='python') !python3 % elseif(&ft=='java') !javac % && java %:t:r elseif (&ft=='c') || (&ft=='cpp') !make && !make run endif endfunction " Spooky scary templates if has("autocmd") augroup templates autocmd BufNewFile *.sh 0r ~/.vim/templates/skeleton.sh autocmd BufNewFile *.sh 2 autocmd BufNewFile *.cpp 0r ~/.vim/templates/skeleton.cpp autocmd BufNewFile *.cpp 10 autocmd BufNewFile *.cpp call AddMakefile(1) autocmd BufNewFile *.c 0r ~/.vim/templates/skeleton.c autocmd BufNewFile *.c 9 autocmd BufNewFile *.c call AddMakefile(0) autocmd BufNewFile *.html 0r ~/.vim/templates/skeleton.html autocmd BufNewFile *.html 11 autocmd BufNewFile *.lisp 0r ~/.vim/templates/skeleton.lisp autocmd BufNewFile *.lisp 9 autocmd BufNewFile *.py 0r ~/.vim/templates/skeleton.py autocmd BufNewFile *.py 9 autocmd BufNewFile *.rb 0r ~/.vim/templates/skeleton.rb autocmd BufNewFile *.rb 9 autocmd BufNewFile *.java 0r ~/.vim/templates/Skeleton.java autocmd BufNewFile *.java 9 autocmd BufNewFile makefile 0r ~/.vim/templates/makefile.c autocmd BufNewFile *.c 9 augroup END endif function! AddMakefile(cpp) if !filereadable("./makefile") if a:cpp == 1 silent !cp ~/.vim/templates/makefile.cpp ./makefile else silent !cp ~/.vim/templates/makefile.c ./makefile endif silent !sed -i s/FILENAME=/FILENAME=%:t:r/g ./makefile endif endfunction! hi Asterisks NONE hi AsteriskItalic cterm=italic gui=italic syn match Asterisks contained "**" conceal syn match AsteriskItalic "\\\@