diff --git a/.vimrc b/.vimrc index c97a71a..6d05f48 100644 --- a/.vimrc +++ b/.vimrc @@ -1,67 +1,39 @@ -" ██╗ ██╗██╗███╗ ███╗ -" ██║ ██║██║████╗ ████║ -" ██║ ██║██║██╔████╔██║ -" ╚██╗ ██╔╝██║██║╚██╔╝██║ -" ╚████╔╝ ██║██║ ╚═╝ ██║ -" ╚═══╝ ╚═╝╚═╝ ╚═╝ - -set nocompatible " be iMproved, required +" +" ██╗ ██╗██╗███╗ ███╗ +" ██║ ██║██║██╔███╗██║ +" ╚═███╔═╝██║██║╚══╝██║ +" ╚══╝ ╚═╝╚═╝ ╚═╝ +" +" Vundle " +set nocompatible " be iMproved, required for plugins filetype off " required - -" set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() -" alternatively, pass a path where Vundle should install plugins -"call vundle#begin('~/some/path/here') - -" let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' - -" The following are examples of different formats supported. -" Keep Plugin commands between vundle#begin/end. -" plugin on GitHub repo -" Plugin 'tpope/vim-fugitive' -" plugin from http://vim-scripts.org/vim/scripts.html -" Plugin 'L9' -" Git plugin not hosted on GitHub -" Plugin 'git://git.wincent.com/command-t.git' -" git repos on your local machine (i.e. when working on your own plugin) -" Plugin 'file:///home/gmarik/path/to/plugin' -" The sparkup vim script is in a subdirectory of this repo called vim. -" Pass the path to set the runtimepath properly. -" Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} -Plugin 'ycm-core/YouCompleteMe' -Plugin 'metakirby5/codi.vim' -" Install L9 and avoid a Naming conflict if you've already installed a -" different version somewhere else. -" Plugin 'ascenator/L9', {'name': 'newL9'} - -" All of your Plugins must be added before the following line +" Plugin 'ycm-core/YouCompleteMe' +" Plugin 'metakirby5/codi.vim' call vundle#end() " required filetype plugin indent on " required -" To ignore plugin indent changes, instead use: -"filetype plugin on -" -" Brief help -" :PluginList - lists configured plugins -" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate -" :PluginSearch foo - searches for foo; append `!` to refresh local cache -" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal -" -" see :h vundle for more details or wiki for FAQ -" Put your non-Plugin stuff after this line 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 @@ -73,12 +45,43 @@ 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) + 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 @@ -88,18 +91,44 @@ if has("autocmd") 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 *.c 9 + + autocmd BufNewFile *.py 0r ~/.vim/templates/skeleton.py + autocmd BufNewFile *.c 9 + + autocmd BufNewFile *.rb 0r ~/.vim/templates/skeleton.rb + autocmd BufNewFile *.c 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 "\\\@