| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- """"""""
- "" 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
- set splitbelow "New splits appear below current window instead of above
- set ttyfast "Smooth movement
- " 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
- " Remember last location in file
- " Only do this part when compiled with support for autocommands
- if has("autocmd")
- augroup redhat
- " In text files, always limit the width of text to 78 characters
- autocmd BufRead *.txt set tw=78
- " When editing a file, always jump to the last cursor position
- autocmd BufReadPost *
- \ if line("'\"") > 0 && line ("'\"") <= line("$") |
- \ exe "normal! g'\"" |
- \ endif
- augroup END
- endif
- """"""""
- "" 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=eol,start,indent "backspace over everything
- """"""""
- "" 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
- set magic "enables wildcard searching
- """"""""
- "" Key Remaps and Shortcuts
- """"""""""""""""""""""""""""""""""""""""""""""""""""""""
- let mapleader = "," "Leader key lets you make more kinds of shortcuts!
- " More convenient escape
- imap ii <Esc>
- imap II <Esc>
- " Add extra lines up and down
- map <leader>j o<Esc>k
- map <leader>k O<Esc>j
- """"""""
- "" Key Remaps - Movement and Windows
- """"""""""""""""""""""""""""""""""""""""""""""""""""""""
- " Smart way to move btw. windows
- map <C-j> <C-W>j
- map <C-k> <C-W>k
- map <C-h> <C-W>h
- map <C-l> <C-W>l
- " window resizing
- noremap + <C-w>10+
- noremap - <C-w>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 <silent> <expr> j ScreenMovement("j")
- onoremap <silent> <expr> k ScreenMovement("k")
- onoremap <silent> <expr> 0 ScreenMovement("0")
- onoremap <silent> <expr> ^ ScreenMovement("^")
- onoremap <silent> <expr> $ ScreenMovement("$")
- nnoremap <silent> <expr> j ScreenMovement("j")
- nnoremap <silent> <expr> k ScreenMovement("k")
- nnoremap <silent> <expr> 0 ScreenMovement("0")
- nnoremap <silent> <expr> ^ ScreenMovement("^")
|