summaryrefslogtreecommitdiff
path: root/.config/vim/vimrc
blob: 91f9b23d59a47acf54c63294ba21412c6fda12d9 (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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
"if &columns < 100
"	set columns=100
"end
"if &lines < 35
"	set lines=35
"end

" basics
set nocompatible        " use vim defaults
set mouse=a             " make sure mouse is used in all cases.
set fileformat=unix     " force unix-style line breaks
set tabpagemax=30       " maximum number of tabs
" tabs and indenting
"set expandtab           " insert spaces instead of tab chars
set tabstop=8          " a n-space tab width
set shiftwidth=8        " allows the use of < and > for VISUAL indenting
set softtabstop=0       " counts n spaces when DELETE or BCKSPCE is used
set fileencoding=utf-8

if has("autocmd")
  filetype plugin indent on " indents behaviour depends on type
else
  set autoindent        " auto indents next new line
endif

set cinoptions=t0,g0,(0,:0 
  
" searching
set nohlsearch          " dont highlight all search results
set incsearch           " increment search
set ignorecase          " case-insensitive search
set smartcase           " upper-case sensitive search

" formatting
set backspace=2         " full backspacing capabilities
set history=100         " 100 lines of command line history
set cmdheight=1         " command line height
set laststatus=2        " occasions to show status line, 2=always.
set ruler               " ruler display in status line
set showmode            " show mode at bottom of screen
set showcmd             " display some infos (in visual)

set number              " show line numbers
set nobackup            " disable backup files (filename~)
set showmatch           " show matching brackets (),{},[]
set ww=<,>,[,]          " whichwrap -- left/right keys can traverse up/down

" search tags-file in the opened file's dir and if not found recursiveley
set tags=./tags;

" syntax highlighting
syntax on               " enable syntax highlighting

" set templatepath .vim/plugin/templates.vim 
let g:templatePath = "~/.config/vim/templates"

" highlight redundant whitespaces and tabs.
"highlight RedundantSpaces ctermbg=red guibg=red
"match RedundantSpaces /\s\+$\| \+\ze\t\|\t/

" gvim settings
set guioptions=aeicv
set guifont=Dejavu\ Sans\ Mono\ 10 " backslash spaces
"set lines=30
"set columns=95

" F5 toggles spell checking
:map <F5> :setlocal spell! spelllang=de_de<cr>
:imap <F5> <C-o>:setlocal spell! spelllang=de_de<cr>

:map <F9> :make<cr>
:imap <F9> <C-o>:make<cr>

" common save shortcuts ~ dont work with vim :(
"inoremap <C-s> <esc>:w<cr>a
"nnoremap <C-s> :w<cr>

" Mapping for Copy/Paste
map <C-x> "+x
map <C-y> "+y
map <C-p> "+p
" enter ex mode with semi-colon
nnoremap ; :
vnoremap ; :

" strip ^M linebreaks from dos formatted files
map M :%s/
$//g

" mutt rules
autocmd BufRead /tmp/mutt-* set tw=72 spell

" load build-in man page viewer command
runtime ftplugin/man.vim

" set bash syntax - pressed v in bash-vi mode 
au BufRead,BufNewFile /tmp/bash-* let is_bash=1|setfiletype sh

" mesa project specific settings
autocmd BufNewFile,BufRead /home/ben/src/mesa*/*{c,h,cpp} set sw=3 ts=8 sts=3 et
autocmd BufNewFile,BufRead /home/ben/src/mesa*/Makefile.* set ft=make
autocmd BufNewFile,BufRead /home/ben/src/mesa*/SCons* set ft=python sw=4 sts=4 ts=4 et
autocmd BufNewFile,BufRead /home/ben/src/mesa*/configure.ac set sw=4 sts=4 ts=8 et

" wayland project specific settings
autocmd BufNewFile,BufRead /home/ben/src/wayland/*xml set sw=2 ts=8 sts=2 et

" settings for web projects
autocmd BufNewFile,BufRead /home/ben/htdocs/mutti-web/*{xsl,xml} set sw=2 ts=8 sts=2 et

" vimmanpager stuff
" disable line numbers when using vim as manpager
autocmd FileType man set nonumber nohlsearch nohlsearch

" its important that viminfo is set at the end
" some options seem to overwrite this (history..)
set viminfo+=n$XDG_CACHE_HOME/vim/viminfo
set dir=$XDG_CACHE_HOME/vim/swp/
set runtimepath=$XDG_DATA_HOME/vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after

colorscheme tango
set background=light
autocmd FileType tex colorscheme delek

set spellfile=$XDG_DATA_HOME/vim/spell.de.add,$XDG_DATA_HOME/vim/spell.en.add