" Compatibility
set nocompatible
" 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
silent! colorscheme sahara
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 nojoinspaces
set shiftround
set shiftwidth=4
set softtabstop=4
set tabstop=4
set textwidth=80
" History
set history=1000
" Miscellaneous
set backspace=indent,eol,start
set modelines=0
set noesckeys
set nolist
set nopaste
set shortmess+=I
set ttyfast
set visualbell t_vb=
nnoremap <leader>l :set list!<CR>
nnoremap <leader>p :set paste!<CR>
" Numbers
set nonumber
nnoremap <leader>n :set number!<CR>
" Scrolling
set sidescroll=1
" 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
" Typos
cnoreabbrev E e
cnoreabbrev W w
cnoreabbrev Wq wq
cnoreabbrev WQ wq
cnoreabbrev Q q
cnoreabbrev QA qa
cnoreabbrev Qa qa
" Wildmenu
if has("wildmenu")
set wildignore+=*.a,*.o
set wildignore+=*.bmp,*.gif,*.ico,*.jpg,*.png
set wildignore+=.DS_Store,.git,.hg,.svn
set wildignore+=*~,*.swp,*.tmp
set wildmenu
set wildmode=longest,list
endif
" Windows
if has("windows")
set laststatus=1
set splitbelow
if has("vertsplit")
set fillchars=""
set splitright
endif
silent! set showtabline=1
endif
" Wrapping
set nowrap
nnoremap j gj
nnoremap k gk
nnoremap <leader>w :set wrap!<CR>
if has("linebreak")
set linebreak
set showbreak=...
endif
" Visual
if has("virtualedit")
set virtualedit+=block
endif