dotfiles/vimrc
Fernando Schauenburg a557472b0f Initial commit
This adds the current state of my dotfiles for version control.
2015-06-13 21:09:33 +02:00

143 lines
5.2 KiB
VimL

set nocompatible
let mapleader = ","
" Vim options {{{
set background=dark " use dark background
set backspace=indent,eol,start " allow backspace over everything
set clipboard=unnamed " use system clipboard for yank/put/delete
set colorcolumn=80 " highlight column 80
set cursorline " highlight current line
set encoding=utf8 " use UTF-8 by default
set expandtab " expand <Tab> to spaces in Insert mode
set foldenable " enable folding
set foldlevelstart=100 " open all folds when opening
set foldmethod=syntax " fold based on syntax by default
set foldnestmax=10 " avoid folds too deeply nested
set formatoptions-=t " don't auto wrap when typing
set hidden " allow switch away from buffer w/o writing
set history=1000 " remember 1000 commnand lines
set hlsearch " highlight matches for last search pattern
set incsearch " show match for partly typed search command
set laststatus=2 " always show the status line
set lazyredraw " don't redraw when executing macros
set listchars=tab:▸\ ,trail,eol
set nobackup " don't keep a backup after overwriting a file
set noshowmode " hide mode since it's shown in airline
set noswapfile " don't use swap files
set number " show line numbers
set scrolloff=7 " number of screen lines to show around the cursor
set shiftwidth=4 " number of spaces used for each step of (auto)indent
set showmatch " show matching brackets
set smartindent " do clever autoindenting
set smarttab " a <Tab> in an indent inserts 'shiftwidth' spaces
set splitbelow " new horizontal splits go below current
set splitright " new vertical splits to the right of current
set tabstop=4 " number of spaces a <Tab> in the text stands for
set textwidth=79 " break lines at 79 characters
set timeoutlen=1000 " timeout of 1s for key combinations
set ttimeoutlen=100 " timeout of 100ms for <esc>
set ttyfast " fast terminal connection
set wildignore=*.o,*.obj,*.pyc,*.exe,*.so,*.dll
set wildmenu " enhanced command-line completion
set wrap " wrap long lines
set writebackup " make a backup before writing a file
if has('multi_byte')
let &showbreak='↳'
else
let &showbreak=' '
endif
" }}}
" Plugins {{{
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'benmills/vimux'
Plugin 'bling/vim-airline'
Plugin 'bronson/vim-trailing-whitespace'
Plugin 'kien/ctrlp.vim'
Plugin 'majutsushi/tagbar'
Plugin 'scrooloose/nerdtree'
Plugin 'scrooloose/syntastic'
Plugin 'tpope/vim-fugitive'
call vundle#end()
filetype plugin indent on
syntax enable
" ctrlp {{{
let g:ctrlp_match_window = 'bottom,order:ttb'
let g:ctrlp_switch_buffer = 0 " open files in new buffer
let g:ctrlp_working_path_mode = 0 " use the current working directory
" }}}
" nerdtree {{{
nmap <leader>n :NERDTreeToggle<cr>
" }}}
" tagbar {{{
nnoremap <leader>t :TagbarToggle<CR>
" }}}
" vim-airline {{{
let g:airline_theme="solarized"
let g:airline_powerline_fonts = 1
" }}}
" vim-colors-solarized {{{
silent! colorscheme solarized
" }}}
" vim-trailing-whitespace {{{
nnoremap <leader>w :FixWhitespace<CR>
" }}}
" }}}
" Autocmds {{{
autocmd FileType vim setlocal foldmethod=marker
autocmd FileType *.py setlocal foldmethod=indent | setlocal foldnestmax=2
" }}}
" Key mappings {{{
" split navigations and resizing
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
nnoremap <C-W><C-K> :execute "resize " . (winheight(0) * 5/4)<CR>
nnoremap <C-W><C-J> :execute "resize " . (winheight(0) * 4/5)<CR>
nnoremap <C-W><C-H> :execute "vertical resize " . (winwidth(0) * 5/4)<CR>
nnoremap <C-W><C-L> :execute "vertical resize " . (winwidth(0) * 4/5)<CR>
" fast navigation of matchpairs ({[]})
nnoremap <TAB> %
vnoremap <TAB> %
" retain selection when indenting/unindenting in visual mode
vnoremap > ><CR>gv
vnoremap < <<CR>gv
" case insensitive searching
nnoremap // /\c
nnoremap ?? ?\c
" quickly exit insert mode
inoremap jk <ESC>
" better navigation for wrapped lines
noremap j gj
noremap k gk
" space opens/closes folds
nnoremap <SPACE> za
" turn off search highlight
nnoremap <LEADER><SPACE> :nohlsearch<CR>
" }}}
if filereadable(expand("~/.vimrc.local"))
source ~/.vimrc.local
endif