You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

172 lines
3.9 KiB
Plaintext

"
" My configuration
"
" This must be first, because it changes other options as side effect
set nocompatible
filetype off
" vundle configuration
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle required!
Plugin 'gmarik/Vundle.vim'
" My Bundles here:
Plugin 'scrooloose/syntastic'
Plugin 'kien/ctrlp.vim'
Plugin 'tpope/vim-vinegar'
Plugin 'flazz/vim-colorschemes'
Plugin 'airblade/vim-gitgutter'
call vundle#end()
filetype plugin indent on " required!
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
" no beep
set visualbell
set noerrorbells
" syntax highlighting
syntax on
scriptencoding utf-8
" automatically enable mouse usage
set mouse=a
set mousehide
if has ('gui') " On Linux use + register for copy-paste
set clipboard=unnamedplus
endif
" better unix / windows compatibility
set viewoptions=options,cursor,unix,slash
" allow for cursor beyond last character
set virtualedit=onemore
" display the current mode
set showmode
" show partial commands in status line and selected chars/lines in visual mode
set showcmd
" backspace for dummies
set backspace=indent,eol,start
" no extra spaces between rows
set linespace=0
" enable line numbering
set nu
" show matching backets/parenthesis
set showmatch
" search
set incsearch
set hlsearch
set ignorecase
set smartcase
set gdefault
set scrolloff=3
set scrolljump=5
" highlight problematic whitespace
"set list
"set listchars=tab:>.,trail:.,extends:#,nbsp:.
" formatting
set nowrap
set autoindent
set expandtab
set shiftwidth=2
set softtabstop=2
set tabstop=4
autocmd FileType python setlocal expandtab shiftwidth=4 softtabstop=4 textwidth=79
set pastetoggle=<F12>
" windows management
set winheight=30
set winminheight=1
"nnoremap <silent> + :exe "resize " . (winheight(0) * 3/2)<CR>
"nnoremap <silent> - :exe "resize " . (winheight(0) * 2/3)<CR>
" key (re)mappings
let mapleader = ','
" Wrapped lines goes down/up to next row, rather than next line in file.
nnoremap j gj
nnoremap k gk
" yank from the cursor to the end of the line, to be consistent with C and D.
nnoremap Y y$
"clearing highlighted search
nmap <silent> <leader>/ :nohlsearch<CR>
" visual shifting (does not exit Visual mode)
vnoremap < <gv
vnoremap > >gv
" force yourself to stop using the arrow keys
"map <up> <nop>
"map <down> <nop>
"map <left> <nop>
"map <right> <nop>
" use Q for formatting the current parapgraph (or selection)
vmap Q gq
nmap Q gqap
" Git Gutter remapping: next, previous, undo
nmap <leader>gn <Plug>(GitGutterNextHunk)
nmap <leader>gp <Plug>(GitGutterPrevHunk)
nmap <leader>gu <Plug>(GitGutterUndoHunk)
" Syntastic
let g:syntastic_python_checkers = ['flake8']
let g:syntastic_python_python_exec = '/usr/bin/python3'
" CtrlP key settings
nnoremap <leader>b :CtrlPBuffer<CR>
let g:ctrlp_custom_ignore = {
\ 'dir': '\.git$\|\.hg$\|\.svn$\|bower_components$\|dist$\|node_modules$\|project_files$\|target$\|bin$',
\ 'file': '\.exe$\|\.so$\|\.dll$\|\.pyc$' }
" Add the virtualenv's site-packages to vim path
if has('python')
:py << EOF
import os.path
import sys
import vim
if 'VIRTUAL_ENV' in os.environ:
project_base_dir = os.environ['VIRTUAL_ENV']
sys.path.insert(0, project_base_dir)
activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
EOF
endif
" do not set if urxvt is properly configured
colorscheme nord
" highlight current line
set cursorline
hi CursorLine cterm=NONE ctermbg=yellow ctermfg=black