diff options
Diffstat (limited to 'base/vimrc')
-rw-r--r-- | base/vimrc | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/base/vimrc b/base/vimrc new file mode 100644 index 0000000..7e68671 --- /dev/null +++ b/base/vimrc @@ -0,0 +1,142 @@ +" Setting editor defaults +set nu +syntax on +set bg=dark +set diffopt=filler,iwhite " keep files synced and ignore whitespace +set expandtab " Get rid of tabs altogether and replace with spaces +"set guioptions-=m " Remove menu from the gui +set guioptions-=T " Remove toolbar +set hidden " hide buffers instead of closing +set history=50 " keep 50 lines of command line history +set ignorecase " Do case insensitive matching +set smartcase " Ignore case only when doing a lowercase search +set incsearch " Incremental search +set linebreak " This displays long lines as wrapped at word boundries +set matchtime=10 " Time to flash the brack with showmatch +set nobackup " Don't keep a backup file +set nocompatible " Use Vim defaults (much better!) +set hlsearch " Use highlighted search (I am blind) +set t_Co=256 " Set terminal to use 256 colors +set backspace=indent,eol,start +set clipboard=unnamed " Use system clipboard for all cut/copy operations +set ruler +set foldmethod=indent +set nofen +set mouse=a +set spell spelllang=en +set wildmode=list:longest,full +set nomousehide +set sessionoptions+=resize,winpos +set listchars=tab:>-,trail:. +set list +set colorcolumn=100 + +" Status Line Settings +set laststatus=2 " always have status bar +set statusline= +set statusline+=%n\ +set statusline+=%<%f\ %h%m%r +set statusline+=%= +set statusline+=%-14.(%l,%c%V%)\ %P + +" filetypes +filetype plugin on +filetype indent on +filetype on + +"Set colorscheme. +colorscheme slate + +" Turn off highlighting after search +map ,, :nohl<CR> + +" Remove all trailing whitespaces +map <Leader>s :%s/\s\+$//g <cr> + +" toggle line number with F11 or Ctrl-L +map <F11> : set number! <cr> +map <C-L> : set number! <cr> + +" Move between split windows +map O5B <C-W>j +map O5A <C-W>k +map O5D <C-W>h +map O5C <C-W>l +imap O5B <C-W>j +imap O5A <C-W>k +imap O5D <C-W>h +imap O5C <C-W>l + +"Set tab to 4 spaces +set shiftwidth=4 +set softtabstop=4 +set tabstop=4 +set smarttab + +" Paste from GUI into vim and not lose indendation +" F7 to toggle paste mode +map <F7> :set invpaste<CR> +set pastetoggle=<F7> + +"normal mode maps + +" Switch to/from header file +map <F4> :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,<CR> + +"Map \e to edit a file from the directory of the current buffer +if has("unix") + nmap <Leader>e :e <C-R>=expand("%:p:h") . "/"<CR> +else + nmap <Leader>,e :e <C-R>=expand("%:p:h") . "\\"<CR> +endif + +cabbr <expr> %% expand('%:p:h') + +"When editing a file, make screen display the name of the file you are editing +function! SetTitle() + if $TERM =~ "^screen" + let l:title = 'vi: ' . expand('%:t') + + if (l:title != 'vi: __Tag_List__') + let l:truncTitle = strpart(l:title, 0, 15) + silent exe '!echo -e -n "\033k' . l:truncTitle . '\033\\"' + endif + endif +endfunction + +" Run it every time we change buffers +autocmd BufEnter,BufFilePost * call SetTitle() + +perl <<EOT + # Get the user name, should probably get the home dir... + my $home_dir = (getpwuid($<))[7]; + + if ( -e $home_dir ) { + my $temp_location = "$home_dir/.vim-tmp"; + my $tmp_dir = $temp_location . '/vXXX'; + my $swp_dir = $temp_location . '/swps'; + + # If the location doesn't exist, create it + mkdir $temp_location unless ( -e $temp_location ); + + mkdir $tmp_dir unless ( -e $tmp_dir ); + mkdir $swp_dir unless ( -e $swp_dir ); + + # Set TMPDIR and directory to the new location + VIM::DoCommand("let \$TMPDIR = '" . $tmp_dir . "'") if ( -w $tmp_dir ); + VIM::DoCommand("set directory=" . $swp_dir) if ( -w $swp_dir ); + } +EOT + +" Scratch Plugin +let g:scratchBackupFile="/tmp/scratch.txt" + +iab --> → + +" Quicker compile & check +map <C-x> :silent make<Enter>:copen<Enter><C-w><C-w>:redraw<Enter> + +" Load host-specific settings +set runtimepath^=~/.host-specific/vim, +set runtimepath+=~/.host-specific/vim/after +source ~/.host-specific/vimrc |