" Compatibility
set nocompatible
" Plugins
silent! call pathogen#infect()
silent! call pathogen#helptags()
" Filetypes
if has("autocmd")
filetype on
filetype indent on
filetype plugin on
endif
" Backups
set nobackup
if has("writebackup")
set nowritebackup
endif
" Colors
if has("syntax")
syntax enable
set background=dark
silent! colorscheme sahara
if has("folding")
set fillchars=diff:\ ,fold:\ ,vert:\
endif
endif
" Commands
if has("cmdline_info")
set ruler
set showcmd
set showmode
endif
" Encoding
set fileformats=unix,dos,mac
if has("multi_byte")
set encoding=utf-8
endif
" Formatting
set expandtab
set smarttab
set nojoinspaces
set shiftround
set shiftwidth=4
set softtabstop=4
set tabstop=4
" History
set history=1000
" List
set nolist
nnoremap <leader>l :set list!<CR>
" Matching
silent! runtime macros/matchit.vim
" Messages
set shortmess+=I
" Miscellaneous
set backspace=indent,eol,start
set modelines=0
set report=0
" Numbers
set nonumber
nnoremap <leader>n :set number!<CR>
" Paste
set nopaste
nnoremap <leader>p :set paste!<CR>
" Reading
set autoread
" Scrolling
set scrolloff=0
set sidescrolloff=16
" Search
if has("extra_search")
set hlsearch
set incsearch
nnoremap <leader>h :set hlsearch!<CR>
nnoremap <leader>i :set incsearch!<CR>
nnoremap <C-l> :nohlsearch<CR><C-l>
if has("autocmd")
augroup vimrc
autocmd!
silent! autocmd InsertEnter * setlocal nohlsearch
silent! autocmd InsertLeave * setlocal hlsearch
augroup END
endif
endif
" Spelling
if has("spell")
set spelllang=en_nz
nnoremap <leader>s :set spell!<CR>
endif
" Swaps
set noswapfile
" Terminal
set noesckeys
set ttyfast
set visualbell t_vb=
" Typos
if has("user_commands")
command! -bang -complete=file -nargs=? E e<bang> <args>
command! -bang -complete=file -nargs=? W w<bang> <args>
command! -bang -complete=file -nargs=? WQ wq<bang> <args>
command! -bang -complete=file -nargs=? Wq wq<bang> <args>
command! -bang Q q<bang>
command! -bang WA wa<bang>
command! -bang WQ wq<bang>
command! -bang Wa wa<bang>
command! -bang Wq wq<bang>
endif
" Unmaps
noremap <F1> <nop>
nnoremap K <nop>
" Wildmenu
if has("wildmenu")
set wildmenu
set wildmode=longest:list
if has ("wildignore")
set wildignore+=*.a,*.o
set wildignore+=*.bmp,*.gif,*.ico,*.jpg,*.png
set wildignore+=.DS_Store,.git,.hg,.svn
set wildignore+=*~,*.swp,*.tmp
endif
endif
" Windows
if has("windows")
set laststatus=1
set splitbelow
if has("vertsplit")
set splitright
endif
if exists("&showtabline")
set showtabline=1
endif
endif
" Wrapping
set nowrap
nnoremap j gj
nnoremap k gk
nnoremap <leader>w :set wrap!<CR>
if has("linebreak")
set linebreak
set showbreak=...
endif
" Yanking
nnoremap Y y$
" Visual
if has("virtualedit")
set virtualedit+=block
endif