Started rewriting .vimrc.

This commit is contained in:
2013-09-18 15:07:35 +02:00
parent 0abe84bc4a
commit 601989d8b6

209
vim/vimrc
View File

@@ -1,81 +1,158 @@
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 01 important
" Filename: .vimrc " " 02 moving around, searching and patterns
" Maintainer: Michael J. Smalley <michaeljsmalley@gmail.com> " " 03 tags
" URL: http://github.com/michaeljsmalley/dotfiles " " 04 displaying text
" " " 05 syntax, highlighting and spelling
" " " 06 multiple windows
" Sections: " " 07 multiple tab pages
" 01. General ................. General Vim behavior " " 08 terminal
" 02. Events .................. General autocmd events " " 09 using the mouse
" 03. Theme/Colors ............ Colors, fonts, etc. " " 10 printing
" 04. Vim UI .................. User interface behavior " " 11 messages and info
" 05. Text Formatting/Layout .. Text, tab, indentation related " " 12 selecting text
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 13 editing text
" 14 tabs and indenting
" 15 folding
" 16 diff mode
" 17 mapping
" 18 reading and writing files
" 19 the swap file
" 20 command line editing
" 21 executing external commands
" 22 running make and jumping to errors
" 23 language specific
" 24 multi-byte characters
" 25 various
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set nocompatible
" 01. General "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nocompatible " get rid of Vi compatibility mode. SET FIRST!
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " setup of vundle
" 02. Events " filetype off
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set rtp+=~/.vim/bundle/vundle/
filetype plugin indent on " filetype detection[ON] plugin[ON] indent[ON] call vundle#rc()
Bundle 'gmarik/vundle'
" In Makefiles DO NOT use spaces instead of tabs filetype plugin indent on
autocmd FileType make setlocal noexpandtab
" In Ruby files, use 2 spaces instead of 4 for tabs
autocmd FileType ruby setlocal sw=2 ts=2 sts=2
" Enable omnicompletion (to use, hold Ctrl+X then Ctrl+O while in Insert mode. " solarized color theme
set ofu=syntaxcomplete#Complete Bundle 'altercation/vim-colors-solarized'
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " setup for the solarized color theme
" 03. Theme/Colors " set background=dark
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" let g:solarized_termcolors=16
set t_Co=256 " enable 256-color mode. let g:solarized_termtrans=1
syntax enable " enable syntax highlighting (previously syntax on). let g:solarized_contrase="normal"
"colorscheme molokai " set colorscheme let g:solarized_visibility="normal"
syntax enable
colorscheme solarized
" Prettify JSON files set mouse=a " enable mouse support
autocmd BufRead,BufNewFile *.json set filetype=json set mousehide " hide the mouse when typing
autocmd Syntax json sou ~/.vim/syntax/json.vim
" Prettify Vagrantfile set history=1000 " history length for commands, defaults to
autocmd BufRead,BufNewFile Vagrantfile set filetype=ruby " 20
" Highlight characters that go over 80 columns set nobackup " do not create a backup
highlight OverLength ctermbg=red ctermfg=white guibg=#592929 set nowritebackup
match OverLength /\%81v.\+/
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 04. Vim UI "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set number " show line numbers
set cul " highlight current line
set laststatus=2 " last window always has a statusline
set nohlsearch " Don't continue to highlight searched phrases.
set incsearch " But do highlight as you type your search.
set ignorecase " Make searches case-insensitive.
set ruler " Always show info along bottom.
set showmatch
set statusline=%<%f\%h%m%r%=%-20.(line=%l\ \ col=%c%V\ \ totlin=%L%)\ \ \%h%m%r%=%-40(bytval=0x%B,%n%Y%)\%P
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set showmode " show the current mode
" 05. Text Formatting/Layout " set cursorline " highlight the current line
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set number " enable linenumbers
set autoindent " auto-indent set numberwidth=2 " only use as many columns for the line
set tabstop=4 " tab spacing " numbers as necessary
set softtabstop=4 " unify set relativenumber " show file numbers relative to the current
set shiftwidth=4 " indent/outdent by 4 columns " line instead of absolute ones, but still
set shiftround " always indent/outdent to the nearest tabstop " the absolute linenumber on the current
set expandtab " use spaces instead of tabs " line due to 'number' being set
set smarttab " use tabs at the start of a line, spaces elsewhere set showmatch " show matching brackets/parentheses
set nowrap " don't wrap text set incsearch " show matches while typing in a search
set hlsearch " highlight matches in a search
match ErrorMsg '\s\+$' " mark trailing whitespace set ignorecase " ignore case when only searching for
" lowercase
set smartcase " letters, case sensitive otherwis
set foldenable " auto-fold code
set wrap " wrap text
set linebreak
set backspace=indent,eol,start " allowing backspacing over autoindent,
" line breaks and start of insert
set encoding=utf-8 " set the encoding
set showmode " show current mode in the status line
set swapfile " use a swapfile
set updatecount=200 " default, number of characters that have
" to be typed before the swapfile is
" written to disk
set updatetime=10000 " time in milliseconds after the swapfile
" is written to disk
set title " let vim set the title of the window
set titlestring="" " use default titlestring
set autoread " automatically reload a file when it was
" changed outside of vim
set gdefault " apply replace patterns to the whole line
" by default
set tabstop=4 " one tab equals 4 spaces
set softtabstop=4 " makes the spaces feel like real tabs
set shiftwidth=4 " one indent level equals 4 spaces
set expandtab " expand tabs to spaces
set autoindent " copy indent from current line when
" starting a new one
set smartindent " smart indenting for C-like languages
set smarttab " use shiftwidth when tabbing in front of
" a line instead of tabsstop/softtabstop
set undofile " use an undo file
set undodir=~/.vim/backups " store undo files in a fixed directory
" instead of the current directory
set undolevels=1000 " undo a maximum of 1000 changes
set undoreload=10000 " save the whole buffer for undo when
" reloading it
set foldmethod=indent " fold according to indet
set foldnestmax=2 " fold a maximum of 2 levels
set nofoldenable " unfold everything by default
set scrolloff=5 " show context at the screen edges
set showcmd " show (partial) command in the command line
set hidden " buffers can exist without a window
set ttyfast " enhance smoothness
set ruler " show position in status line
set wildmenu " show a menu when autocompleting
set wildmode=list:longest " automatically complete up to the level
" of ambiguity
set autochdir " automatically change to the directory that
" contains the file that is edited
let mapleader = ","
nnoremap / /\v
vnoremap / /\v
nnoremap <leader><space> :noh<cr>
nnoremap <tab> %
vnoremap <tab> %
nnoremap j gj
nnoremap k gk
" Removes trailing spaces
function! TrimWhiteSpace() function! TrimWhiteSpace()
%s/\s\+$//e %s/\s\+$//e
endfunction endfunction