summaryrefslogtreecommitdiff
path: root/.vimrc
blob: 87e1edb0fd608a21e9761c08ceda2ffeabad60f2 (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
125
126
127
128
129
130
131
" =======================================================
" GENERAL
" =======================================================

" load the bundles
source ~/.vim/bundles.vim

" Colorscheme
colorscheme desert

" More general stuff
set nu
set fenc=utf-8
set modeline
set ts=4
set sw=4
set sts=4
set expandtab
set guifont=Inconsolata\ Medium\ 11,Monospace\ 11
set spelllang=de_20

if has("gui_running") " nice cursorline in the gui
    set cursorline
else " explicitly disable it all else
    set nocursorline
endif

let mapleader = ","
let maplocalleader = "\\"
let &guicursor = &guicursor . ",a:blinkon0"

" statusline
set laststatus=2 " always show line
set statusline=%-3.3n\ %f\ %r%w[%{strlen(&ft)?&ft:'none'},%{strlen(&fenc)?&fenc:&enc.'\ (G)'},%{&fileformat}]%m%=%-14.(%l,%c%V%)%<%P

" Maximize window
function ToggleFullscreen()
    let cmd = ("silent !wmctrl -i -r " . v:windowid . " -b toggle,maximized_vert,maximized_horz")
    if executable("wmctrl")
        execute cmd
        if v:shell_error
            echoerr "Problem executing wmctrl"
            echoerr "Cmd:" cmd
        endif
    else
        echomsg "wmctrl not found"
    endif
endfunction

au GUIEnter * call ToggleFullscreen()

" =======================================================
" COMPLETION FOR CMDLINE
" =======================================================

" enable nice menu
set wildmenu

" do not use Left and Right for switching between completions, 
" but for cursor positioning
cnoremap <Left> <Space><BS><Left>
cnoremap <Right> <Space><BS><Right>

" =======================================================
" CUSTOM MAPPINGS
" =======================================================

" Some maps
nmap <Leader>t :ToggleWord<CR>
map <C-F10> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
nmap <silent> <F12> :Tlist<CR>
nmap <silent> <F11> :TlistUpdate<CR>
nmap <silent> <F4> :ls<CR>:buf
map <C-F12> :GundoToggle<CR>
map <C-Tab> gt
map <C-S-Tab> gT
imap <S-Tab> <C-X><C-O>
map <F10> :make<CR>

map <C-M-f> :call ToggleFullscreen()<CR>
imap <C-M-f> <ESC>:call ToggleFullscreen()<CR>a

" Makes more sense and is similar to D
map Y y$

" =======================================================
" PLUGINS AND LANGUAGES
" =======================================================

" Word toggling
let g:toggle_words_dict = {
        \ 'python': [
                \ ['if', 'elif', 'else'] 
            \ ],
        \ '*': [ 
                \ ['enable', 'disable'],
                \ ['enabled', 'disabled']
            \ ]} 

" Stuff for the TagList-Plugin
let Tlist_Sort_Type = "name"
let Tlist_File_Fold_Auto_Close = 1
let Tlist_Exit_OnlyWindow = 1

" Stuff for the NERD Tree Plugin
let NERDTreeWinPos = 0 "have it on the right site

" Autotag -- correct C++ handling
let g:autotagCtagsCmd="ctags --c++-kinds=+p --fields=+iaS --extra=+q"

" stuff for gentoo syntax
let g:bugsummary_browser="firefox %s"

" for toggling in python
let python_highlight_numbers = 1
let python_highlight_space_errors = 1

" default to latex for .tex files
let g:tex_flavor = "latex"

" do not do concealment in .tex files -- just too slow (and ugly)
let g:tex_conceal = ""

" =======================================================
" FINAL
" =======================================================

" turn of any existing search
if has("autocmd")
    au VimEnter * nohls
endif