vim-settings/vim/dot_vimrc

215 lines
4.5 KiB
Plaintext

" Vundle
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" Rest of my bundles
" File Nav
Bundle 'kien/ctrlp.vim'
Bundle 'scrooloose/nerdtree'
Bundle 'a.vim'
Bundle 'file-line'
Bundle 'tpope/vim-fugitive'
" Needs Vim compiled with Ruby
Bundle 'wincent/Command-T'
" Buffer Nav
Bundle 'kien/tabman.vim'
Bundle 'sandeepcr529/Buffet.vim'
" Needs Vim compiled with Ruby
Bundle 'mutewinter/LustyJuggler'
" Nav in file
Bundle 'taglist.vim'
" Text Manipulation
Bundle 'tomtom/tcomment_vim'
Bundle 'pdurbin/vim-tsv'
" GUI
Bundle 'vividchalk.vim'
Bundle 'gregsexton/MatchTag'
" Filetypes
Bundle 'ejholmes/vim-forcedotcom'
"Allow arrow keys
set nocompatible
"Use more convenient leader
let mapleader=","
"Enable mouse input
set mousehide
set mouse=a
"tab functionality
"tabs inserted as 4 spaces
"backspace deletes all spaces
"autoindent enabled
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set autoindent
"Ensure backspace actually works
set backspace=2
filetype plugin indent on
set virtualedit=onemore " allow for cursor beyond last character
set scrolljump=5 " lines to scroll when cursor leaves screen
set scrolloff=3 " minimum lines to keep above and below cursor
"Set backup dirs
set backup
set backupdir=~/.vim/backup
set directory=~/.vim/tmp
"set theme
try
colorscheme vividchalk
catch /^Vim\%((\a\+)\)\=:E185/
" deal with it
endtry
"Highlights the line the cursor is on
set cursorline
:hi CursorLine cterm=NONE ctermbg=darkred guibg=darkred guifg=white
"Toggle highlighting with \hr (highlight row)
nnoremap <Leader>hr :set cursorline!<CR>
"enable line numbers
set nu
"Toggle Line numbers with Ctrl+N double tap
nmap <C-N><C-N> :set invnumber<CR>
nmap <leader>ln :set invnumber<CR>
"Toggle line wrap with Ctrl+L double tap
nmap <C-L><C-L> :set wrap!<CR>
nmap <leader>lw :set wrap!<CR>
"Allows filetype detection
filetype on
"Move between splits using Ctrl+hjkl
map <C-k> <C-w>k
map <C-j> <C-w>j
map <C-l> <C-w>l
map <C-h> <C-w>h
"map Shift+U to redo
nnoremap <S-u> <C-r>
"Buffet shortcut
nnoremap <silent> <F2> :Bufferlist<CR>
"Tab Man shortcut
nnoremap <silent> <F3> :TMToggle<CR>
"LustyJugler settings
let g:LustyJugglerShowKeys=1 "Show numbers for Lusty Buffers
let g:LustyJugglerSuppressRubyWarning=1
"NERDTree
nnoremap <silent> <F4> :NERDTreeToggle<CR>
nnoremap <leader>nn :NERDTreeToggle<CR>
nnoremap <leader>nf :NERDTreeFind<CR>
"CTags List
nnoremap <silent> <F8> :TlistToggle<CR>
let Tlist_Exit_OnlyWindow=1
let Tlist_Winwidth=30
"Syntax Hightlighting
syntax on
"Remap jk to esc
inoremap jk <esc>
"vnoremap jk <esc> "Makes it difficult to select lines as j is common
"Remap Ctrl+Space for auto Complete
inoremap <C-Space> <C-n>
inoremap <Nul> <C-n>
" Stupid shift key fixes
"cmap W w
cmap WQ<CR> wq<CR>
cmap Wq<CR> wq<CR>
cmap W<CR> w<CR>
cmap Q<CR> q<CR>
"Enable search highlighting
set hls
"clearing highlighted search
nmap <silent> <leader>/ :nohlsearch<CR>
" Change Working Directory to that of the current file
cmap cwd lcd %:p:h
cmap cd. lcd %:p:h
" ---------------
" Command T and ctrlp.vim
" Snagged from mutewinter @ https://github.com/mutewinter/dot_vim
" ---------------
" Ensure Ctrl-P isn't bound by default
let g:ctrlp_map = ''
" Ensure max height isn't too large. (for performance)
let g:ctrlp_max_height = 10
let g:CommandTMaxHeight = 10
" Set the default escape keybinding to, you guessed it, escape.
let g:CommandTCancelMap = '<esc>'
" Dynamically use Command T or ctrlp.vim based on availability of Ruby.
" We do this because Command T is much faster than ctrlp.vim.
if has('ruby')
" --------
" Use Command T since we've got Ruby
" --------
" Conditional Mappings
if has('unix')
nnoremap <silent><C-t> :CommandT<CR>
else
nnoremap <silent><M-t> :CommandT<CR>
endif
" Leader Commands
nnoremap <leader>t :CommandT<CR>
else
" --------
" Use ctrlp.vim since we don't have Ruby
" --------
" Conditional Mappings
if has('unix')
let g:ctrlp_map = '<C-t>'
else
let g:ctrlp_map = '<M-t>'
endif
" Leader Commands
nnoremap <leader>t :CtrlPRoot<CR>
nnoremap <leader>b :CtrlPBuffer<CR>
endif
" Always use CtrlP for most recently used files and relative dierctory.
"if has('unix')
" nnoremap <silent><C-u> :CtrlPCurFile<CR>
"else
" nnoremap <silent><M-u> :CtrlPCurFile<CR>
"endif
" Also map leader commands
nnoremap <leader>u :CtrlPCurFile<CR>
nnoremap <leader>m :CtrlPMRUFiles<CR>
nnoremap <leader>b :CtrlPBuffer<CR>