" ==================================================================
"  \\  //   []   ||\\//||
"   \\//    ||   || `' ||
"    ------------------------rc----
"
" Moritz Orbach <gnu@apfelboymchen.net>
" http://apfelboymchen.net/vim/
" ==================================================================

  set nocompatible                  " nicht vi-compatible -- wird _angeblich_ automatisch gemacht wenn vimrc eingelesen wird! an den start wegen seiteneffekten!
  set cpoptions+=$                  " hat irgendwie was ;)
  set hlsearch                      " highlight search
  set incsearch                     " incremental search
  set ignorecase                    " ignore Caset in searchpatterns
  set smartcase                     " wenn searchpattern großbuchstaben enthält kein ignorecase
  set infercase                     " caset egal bei insert-autocompletion
  set showcmd                       " show current uncompleted command
  set noshowmatch                   " bei klammer schließen nicht zum anfang der klammer springen
  set nowrap                        " no wrap
  set linebreak                     " bei 'wrap' die lines bei chars in 'breakat' umbrechen
  set showbreak=\ \ \ \ \ \ \ \ *   " bei linebreak vor den zeilen diesen char (nur G0)

  " listchars
  set listchars=eol:$               " eol = $
  set listchars+=tab:>-             " tabs = >----
  set listchars+=trail:_            " trailing spaces = _
  set listchars+=extends:>          " bei gewrapten lines ">" am ende
  set listchars+=precedes:<         " bei fortgesetzten zeile "<" am anfang

  " autoformat einstellungen (:help fo-table)
  set formatoptions=t               " textwidth
  set formatoptions+=c              " bei tw-wrap comment leader mit einfügen
  set formatoptions+=q              " comments formatieren mit "gq"
  set formatoptions+=n              " wenn "ai" an ist: numbered lists fortführen
  set formatoptions+=w              " nicht alles kaputtmachen beim formatieren (nur bei leerzeichen umbrechen)

  " viminfo einstellungen (:help 'viminfo)
  set viminfo='20,\"50,h            " default. marks der letzten 20 files, alle register > 50, kein hlsearch
  set viminfo+=%                    " buffer list mitspeichern, nur wenn nicht mit parameter aufgerufen

  set isfname-==                    " "=" nicht bei ^X^F berücksichtigen (VAR=/^X^F geht sonst net)
  set switchbuf=useopen             " bei :sb-commands zu existierenden buffer springen

  set ruler                         " position in leiste anzeigen
  set scrolloff=9                   " immer 5 zeilen oben und unten platz lassen
  set sidescroll=1                  " beim seitwärtsscrollen nicht wild rumhüpfen!
  set siso=10                       " sidescrolloff
  set backspace=indent,eol,start
  set nostartofline                 " cursor beim seitenscrollen nicht auf ^
  set dictionary=                   " dictionarys for autocompletion (^X)
  set selectmode=key                " angeblich selectmode (wie dos-edit markieren) bei geshiftetem key starten

  if has("mouse")
    set mouse=h                     " schiss schiss maus bringt nix als aerger, jetzt aber nur noch in der hilfe
  endif

  set visualbell t_vb=              " kein dummes gebeepe oder geflashe
  set bg=dark                       " farben für dark/light background
  set ttyfast                       " besserer redraw
  set shortmess=fimnrwx             " kürzere messages
  set wildmode=list:longest         " autocompletion wie in bash
  set infercase                     " Handle case in a smart way in autocompletes
  set wildmenu                      " menü an

  set keywordprg=                   " was für ein programm beim keywordlookup (K) aufgerufen wird (help)

  set hidden                        " Allow hidden buffers (to switch buffers without saving)
  set virtualedit=block             " visual edit kann auch dahin, wo kein char ist!
  set showfulltag                   " Show full tag completions (weiß net so genau)
  set display+=lastline             " A nicer way to show long wrapped lines
  set shiftround                    " nicht krumm indenten (entgegen tabweite)
  set lazyredraw                    " don't redraw while executing macros (faster)

  set timeoutlen=500                " ab wann ein ESC nicht mehr als esc-zeichenfolge (z.B. cursor movement) interpretiert wird
        

  set nomodeline                    " using http://ciaranm.org/tag/securemodelines instead
  let g:secure_modelines_verbose = 1

" dochnixgut
" set formatoptions+=o            " nach "o" oder "O" comment leader einfügen (rückgängig mit "^U")
" set noshowmatch                 " bei klammer schließen nicht zum anfang der klammer springen
" set tildeop                     " tilde ist ein operator (~w = word casetoggeln, geht mit gUw)
" set textwidth=90                " maximum length of a line
" set lazyredraw                  " kein bildschirmupdate in makros
" set gdefault                    " bei substitutions automatisch wie mit 'g' (alle matches einer zeile ersetzen)
                                  " (ich schreibs ja doch hin und dann ersetzt er doch nur 1. match, ausserdem sed & co)
"set softtabstop=4                " tabs sind $ts, sehen aber aus wie $sts
" pre-utf8
"set showbreak=\ \ \ \ \ \ \ \ ·   " bei linebreak vor den zeilen diesen char (nur G0)
" set isfname+=32                  " space is recognized as a filename-part (http://www.vim.org/tips/tip.php?tip_id=1212)
                                   " quatsch, da nimmer er immer die ganze zeile
" set cmdheight=2                  " gegen "press enter"-meldungen bei langen dateinamen oder kleinen terminals. :help hit-enter !
"                                    doesn't work: ex-cmdline is always 2 lines high...


" set virtualedit=all             " cursor kann auch hinter zeilenende

" highlighten mit '%1*hier high%*', wobei 1 sowas wie
"           'hi User1 term=inverse,bold cterm=inverse,bold ctermfg=red'
" ist. Spaces quoten.
"
" %= = sep. betweeen l/r-aligned      %n = buffer number
" %F = full path to file              %y = type of file
" %m = modified                       %r = readonly
" %b = value of byte                  %B = value of byte in HEX
  set statusline=[%n]\ %F%y%m%r\ %=\ %b\ 0x%B\ \ \ %c,%l/%L\ \ %P
"set rulerformat=[%n]\ %F%y%m%r\ %=\ %b\ 0x%B\ \ \ %c,%l/%L\ \ %P
"set laststatus=2        " always show status line (default=1)

" kein a.outs mehr
  set makeprg=gcc\ -o\ %<\ %


" gehtnet
"set highlight="?"       " farben der selections u.s.w., gehtnet


" softtabstop -- tabwidth 8, visual 2
" unüz
"  set matchtime=10       " solange bleibt er auf der klammer bei 'showmatch'


  if has("syntax")
    syntax on                         " syntax an
  endif


  let highlight_function_name = 1

  source $VIM/maps.vim
  source $VIM/palette.vim
  source $VIM/filetypes.vim
  source $VIM/plugins/bufexplorer.vim
  source $VIM/ex-emacs.vim
" source $VIM/functions.vim

"quatsch?:
"set wildmenu
"set cpo-=<
"set wcm=<C-Z>
"map <F4> :emenu <C-Z>

" vim: expandtab:ts=4