"""""""" "" Plugin Loading with Pathogen """"""""""""""""""""""""""""""""""""""""""""""""""" call pathogen#infect() """""""" "" General Behaviours """"""""""""""""""""""""""""""""""""""""""""""""""" set nocompatible "Don't have to try to be compatible with old vi set autoread "Read a file if it's changed from outside of vim " Enable filetype specific features filetype plugin on filetype indent on if version >= 700 set mouse=a "mouse support for 7.x endif " Source the vimrc file after saving it autocmd! bufwritepost .vimrc source $MYVIMRC """""""" "" Formatting """""""""""""""""""""""""""""""""""""""""""""""""""""" set tabstop=4 "actual tab press distance set shiftwidth=4 "for autoindent set softtabstop=4 " let backspace delete indent set expandtab "change to single spaces set autoindent "use last line to set next indent set smartindent "guess harder, based on C-like language set wrap lbr "wrap long lines of text " Set backspace config set backspace=eol,start,indent """""""" "" UI - Colours """""""""""""""""""""""""""""""""""""""""""""""""""""" syntax on colorscheme desert hi Folded ctermfg=darkred "set colour for folded lines if version >= 730 set colorcolumn=80 endif """""""" "" UI - Numbering """""""""""""""""""""""""""""""""""""""""""""""""""""""" set number "show line numbers set ruler "show row,col count in status line set laststatus=2 "always show a status line if version >= 730 set relativenumber "current line always 0 (requires 7.3 and up) endif """""""" "" UI - Code Folding """""""""""""""""""""""""""""""""""""""""""""""""""""""" "set foldmethod=indent "set foldlevel=5 "set foldtext=MyFoldText() " "function! MyFoldText() " let line = getline(v:foldstart) " let indent = indent(v:foldstart) " let indentOnly = strpart(line, 0, indent-1) " let linecount = v:foldend+1 - v:foldstart " let plural = "" " if linecount != 1 " let plural = "s" " endif " let foldtext = '+'.indentOnly.'... ('.linecount.' More lines)' " return foldtext "endfunction """""""" "" UI - Search """""""""""""""""""""""""""""""""""""""""""""""""""""""" set hlsearch "make searches highlighted set incsearch "vim will search as you type! set ignorecase """""""" "" Key Remaps and Shortcuts """""""""""""""""""""""""""""""""""""""""""""""""""""""" let mapleader = "," "Leader key lets you make more kinds of shortcuts! " More convenient escape imap ii imap II " Add extra lines up and down map j ok map k Oj """""""" "" Key Remaps - Movement and Windows """""""""""""""""""""""""""""""""""""""""""""""""""""""" " Smart way to move btw. windows map j map k map h map l " window resizing noremap + 10+ noremap - 10- " mapping to make movements operate on 1 screen line in wrap mode function! ScreenMovement(movement) if &wrap return "g" . a:movement else return a:movement endif endfunction onoremap j ScreenMovement("j") onoremap k ScreenMovement("k") onoremap 0 ScreenMovement("0") onoremap ^ ScreenMovement("^") onoremap $ ScreenMovement("$") nnoremap j ScreenMovement("j") nnoremap k ScreenMovement("k") nnoremap 0 ScreenMovement("0") nnoremap ^ ScreenMovement("^") nnoremap $ ScreenMovement("$")