summaryrefslogtreecommitdiff
path: root/vimrc
blob: 06b3a636f5a49cc80361aa197ae18760c7159646 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
" load plugin bundles with pathogen
runtime bundle/pathogen/autoload/pathogen.vim
execute pathogen#infect()

set nocompatible	" don't be compatible to vi
set showcmd		" show entered commands in status line
set showmatch		" show matching brackets
set autoindent		" indent new lines correctly
set hlsearch		" highlight search results
set ignorecase		" case-insensitive searching
set background=dark	" color scheme for dark background
set title		" set terminal title
set ruler		" show line/column of cursor in status line
set tabstop=4		" display a tab as 4 spaces
"set softtabstop=4	" (soft) indent tabs with 4 spaces
set shiftwidth=4	" (auto)indent with 4 spaces (> <)
set noexpandtab		" don't expand tabs to spaces
set nobackup		" don't keep backup files
set showtabline=2	" always show tab line
set hidden		" change buffers without saving
set cursorline		" highlight current cursor line
set scrolloff=4		" keep 4 lines context when scrolling
set laststatus=2	" always show status line
set ttimeoutlen=50	" faster switch from insert to normal mode
set noshowmode		" don't show current mode (done by airline)
set encoding=utf-8	" use utf8 by default
syntax on		" enable syntax highlighting
filetype plugin indent on

set directory=~/.vim/swap,.,~/tmp,/var/tmp,/tmp		" directory where to save/search swap files
set viminfo+=n~/.vim/viminfo				" different location for viminfo file

" make indentation and trailing whitespaces visible
set list listchars=tab:\ \ ,trail:ยท

" autocommands
autocmd FileType python setlocal tabstop=4 softtabstop=0
autocmd FileType c      setlocal tabstop=4 softtabstop=0 noexpandtab
autocmd FileType perl   setlocal tabstop=4 softtabstop=4 expandtab
autocmd FileType c,cpp,perl,python setlocal number relativenumber

autocmd InsertEnter * if &number | set norelativenumber | endif
autocmd InsertLeave * if &number | set relativenumber | endif

" highlighting settings
if (&t_Co == 88)
    highlight CursorLine cterm=NONE ctermbg=81
elseif (&t_Co == 256)
    highlight CursorLine cterm=NONE ctermbg=236
    highlight Folded cterm=NONE ctermbg=239
    highlight SignColumn ctermbg=234
    highlight LineNr ctermfg=lightyellow ctermbg=234
    highlight SpecialKey ctermfg=darkgray
else
    highlight CursorLine cterm=NONE ctermbg=darkgray
endif


" file browser
let g:netrw_liststyle=3		" tree style listing
let g:netrw_banner=0		" suppress banner on top
"let g:netrw_browse_split=3	" open files in new tab
let g:netrw_list_hide='^\..*$'	" don't show hidden files


" key mappings
nnoremap <silent> <SPACE>	:nohlsearch<CR>
nmap tn				:tabnew<CR>
nmap tc				:tabclose<CR>
noremap <silent> <F3>		:BufExplorerHorizontalSplit<CR>
nnoremap <silent> <F4>		:TagbarToggle<CR>


" different keycodes in urxvt
nmap    <ESC>[5^    <C-PageUp>
nmap    <ESC>[6^    <C-PageDown>

" folding settings;  disabled for now because of performance problems
"set foldmethod=syntax		" fold automatically by syntax rules
"set foldlevel=0		" fold from top level
"set foldnestmax=1		" fold only 1 level
"let perl_fold=1
"let perl_nofold_packages=0

" BufExplorer settings
let g:bufExplorerSplitHorzSize=15
let g:bufExplorerSplitVertSize=40
let g:bufExplorerDefaultHelp=0
let g:bufExplorerShowNoName=1

" airline settings
let g:airline_theme='wombat'
let g:airline#extensions#whitespace#enabled=0