" " vimconfig - project of powerful ViM 6.3 configuration files " " vimrc - main configuration file " ____________________________________________________________ " " Developed by Lubomir Host 'rajo' " Copyright (c) 2000-2005 Platon SDG, http://platon.sk/ " All rights reserved. " " See README file for more information about this software. " See COPYING file for license information. " " Download the latest version from " http://platon.sk/projects/vimconfig/ " " Please don't hesitate to correct my english :) " Send corrections to " " Lubomir Host 'rajo' " Version: $Platon: vimconfig/vimrc,v 1.110 2005/06/16 13:30:18 rajo Exp $ " Debian uses compressed helpfiles. We must inform vim that the main " helpfiles is compressed. Other helpfiles are stated in the tags-file. if !filereadable(expand("$VIMRUNTIME/doc/help.txt")) if filereadable(expand("$VIMRUNTIME/doc/help.txt.gz")) set helpfile=$VIMRUNTIME/doc/help.txt.gz endif endif " Settings {{{ " To be secure & Vi nocompatible :set secure nocompatible :if version < 600 : echo "Please update your vim to 6.x version (version 6.3 is available, version 7.0 vill be soon!)" : finish :endif :if version >= 600 syntax enable filetype on filetype plugin on filetype indent on :endif function! Source(File) silent! execute "source " . a:File endfunction let VIMRC_EXTRA="~/.vim/local/vimrc" let GVIMRC_EXTRA="~/.vim/local/gvimrc" if executable("uname") && executable("awk") let machine = system("uname -n | awk 'BEGIN {ORS=\"\"} {print; }'") else let machine = $HOSTNAME endif let machine = tolower(machine) let user = $USER call Source(VIMRC_EXTRA.".pre") call Source(VIMRC_EXTRA."-".user.".pre") call Source(VIMRC_EXTRA."-".machine.".pre") call Source(VIMRC_EXTRA."-".machine."-".user.".pre") call Source(VIMRC_EXTRA."") call Source(VIMRC_EXTRA."-".user) call Source(VIMRC_EXTRA."-".machine) call Source(VIMRC_EXTRA."-".machine."-".user) " used for searching documentation (~/.vim/doc/FEATURES.txt) etc. set runtimepath+=~/.vim " Settings for C language {{{ let c_gnu=1 let c_comment_strings=1 let c_space_errors=1 " }}} " History and viminfo settings {{{ if has("cmdline_hist") set history=10000 endif if has("viminfo") if filewritable(expand("$HOME/.vim/viminfo")) == 1 || \ filewritable(expand("$HOME/.vim/")) == 2 set viminfo=!,%,'5000,\"10000,:10000,/10000,n~/.vim/viminfo else set viminfo= endif endif " Don't save backups of files. set nobackup set backupcopy=yes " }}} " Status line settings {{{ ":set ruler " Display a status-bar. set laststatus=2 if has("statusline") set statusline=%5*%{GetID()}%0*#%{winnr()}\ %<%f\ %3*%m%1*%r%0*\ %2*%y%4*%w%0*%=[%b\ 0x%B]\ \ %8l,%10([%c%V/%{strlen(getline(line('.')))}]%)\ %P endif " }}} " Settings for Calendar plugin {{{ if !exists("g:calendar_diary") let g:calendar_diary = "~/.vim/diary" endif " }}} " Settings for Explorer script {{{ if !exists("g:explDetailedHelp") let g:explDetailedHelp=1 endif if !exists("g:explDetailedList") let g:explDetailedList=1 endif if !exists("g:explDateFormat") let g:explDateFormat="%d %b %Y %H:%M" endif " }}} " Settings for gcc & make {{{ let g:cflags="-Wall -pedantic" let g:c_debug_flags="-ggdb -DDEBUG" let g:makeflags="" " }}} " Settings for AutoLastMod {{{ " Set this to 1 if you will automaticaly change date of modification of file. let g:autolastmod=1 " Modification is made on line like this variable (regular expression!): let g:autolastmodtext="^\\([ ]*Last modified: \\)" " }}} " Priority between files for file name completion (suffixes) {{{ " Do not give .h low priority in command-line filename completion. set suffixes-=.h set suffixes+=.aux set suffixes+=.bbl set suffixes+=.blg set suffixes+=.log set suffixes+=.eps set suffixes+=.ps set suffixes+=.pdf set wildignore+=*.dvi set wildignore+=*.pdf set wildignore+=*.o set wildignore+=*.ko set wildignore+=*.swp set wildignore+=*.aux set wildignore+=*.bbl set wildignore+=*.blg " }}} " The cursor is kept in the same column (if possible). This applies to the " commands: CTRL-D, CTRL-U, CTRL-B, CTRL-F, "G", "H", "M", "L", , and to the " commands "d", "<<" and ">>" with a linewise operator, with "%" with a count " and to buffer changing commands (CTRL-^, :bnext, :bNext, etc.). Also for an " Ex command that only has a line number, e.g., ":25" or ":+". set nostartofline " Automatically setting options in various files " WARNINNG: disable modeline if you are running vim version < 6.1.265 !! " These are security problems. See http://www.guninski.com/vim1.html " (reported by Georgi Guninski) " TODO: there is no way how to test vim patchlevel version, therefore we are " not able determine vim version < 6.1.265 set modeline " Available TAGS files set tags=./TAGS,./tags,tags " Don't add EOF at end of file set noendofline " Do case sensitive matching set noignorecase set showfulltag set cmdheight=2 set backspace=2 set incsearch set report=0 set showcmd showmatch showmode " Set title of the window to Platon's copyright " set titleold= " set titlestring=ViMconfig\ (c)\ 2000-2005\ Platon\ SDG " set title " Indent of 1 tab with size of 4 spaces set tabstop=4 set shiftwidth=4 " Need more undolevels ?? " (default 100, 1000 for Unix, VMS, Win32 and OS/2) set undolevels=10000 " Use an indent of 4 spaces, with no tabs. This setting is recommended by PEAR " (PHP Extension and Application Repository) Conding Standarts. If you want " this setting uncomment the expandtab setting below. ":set expandtab " Settings for mouse (gvim under Xwindows) set nomousefocus set mousehide set mousemodel=popup " Cursor always in the middle of the screen if GUI is not running if ! has("gui_running") set scrolloff=999 endif set sidescroll=5 set sidescrolloff=1 " Make window maximalized set winheight=100 " The screen will not be redrawn while executing macros, registers " and other commands that have not been typed. To force an updates use |:redraw|. set lazyredraw " time out on mapping after one second, time out on key codes after " a tenth of a second set timeout timeoutlen=1000 ttimeoutlen=100 " command completition set wildchar= set wildmenu set wildmode=longest:full,full "set clipboard=unnamed " Allow specified keys that move the cursor left/right to wrap to the " previous/next line when the cursor is on the first/last character in the " line. Allowed keys are 'h' and 'l', arrow keys are not allowed to wrap. set whichwrap=h,l " Customize display {{{ " lastline When included, as much as possible of the last line " in a window will be displayed. When not included, a " last line that doesn't fit is replaced with "@" lines. "uhex Show unprintable characters hexadecimal as " instead of using ^C and ~C. set display+=lastline set display+=uhex " }}} " Vim beeping go to the hell... {{{ " With very little patch Vim(gvim) doesn't beep! To dissable beeping patch " source and set ':set noerrorbells' (default). " Here is patch for version 6.0.193: " Note: file src/misc1.c was modified with theses patches: " 6.0.024 6.0.089 6.0.113 6.0.178 6.0.180 " but patch (probably) also work! " Patch: "*** vim60.193/src/misc1.c.orig Sat Feb 9 01:49:54 2002 "--- vim60.193/src/misc1.c Sat Feb 9 02:17:16 2002 "*************** "*** 2721,2727 **** " void " vim_beep() " { "! if (emsg_silent == 0) " { " if (p_vb) " { "--- 2721,2727 ---- " void " vim_beep() " { "! if (emsg_silent == 0 && p_eb) " { " if (p_vb) " { set noerrorbells set visualbell set t_vb= " }}} " Set this, if you will open all windows for files specified " on the commandline at vim startup. if !exists("g:open_all_win") let g:open_all_win=1 endif " Settings for folding long lines if !exists("g:fold_long_lines") let g:fold_long_lines=300 endif " }}} " Keybord mappings {{{ " " start of line "noremap i inoremap cnoremap " end of line noremap i inoremap " back one word inoremap " forward one word "inoremap " Switching between windows by pressing one time CTRL-X keys. noremap " Tip from http://vim.sourceforge.net/tips/tip.php?tip_id=173 noremap j_ noremap k_ " Make Insert-mode completion more convenient: imap set remap map :split imap :split " diakritika ":map :so ~/.vim/diakritika.vim ":imap :so ~/.vim/diakritika.vim " Open new window with file ~/.vimrc (ViM configuration file) map :split ~/.vimrc imap :split ~/.vimrc " Open new window with dir ~/.vim (ViM configuration dir) map :split ~/.vim imap :split ~/.vim " Safe delete line (don't add line to registers) ":imap "_ddi imap :call SafeLineDelete()i " Search for the current Visual selection. vmap S y/=escape(@",'/\') " replace selected text with text in register vnoremap p :let current_reg = @"gvdi=current_reg " Good pasting toggle {{{ " From Christopher Swingley " Whenever I want to paste something, I do: " ,f " i " " " ,f map ,f :set paste!:set paste? " }}} " Mappings for folding {{{ " Open one foldlevel of folds in whole file " Note: 'Z' works like 'z' but for all lines in file noremap Zo mzggvGzo'z noremap ZO zR noremap Zc mzggvGzc'z noremap ZC zM noremap Zd mzggvGzd'z noremap ZD mzggvGzD'z noremap Za mzggvGza'z noremap ZA mzggvGzA'z noremap Zx mzggvGzx'z noremap ZX mzggvGzX'z " }}} " }}} " Settings for IMAP input method (IMAP plugin) {{{ " detect iso-8859-2 encoding before latin1 set fileencodings=ucs-bom,utf-8,iso-8859-2,windows-1250,latin1 " set variable "b:input_method" to change input method " let b:input_method = "latin2" let b:input_method = &encoding " you may disable actions of IMAP plugin with variable b:disable_imap " 0 - enabled " 1 - disabled let b:disable_imap = 0 call Source("~/.vim/plugin/imaps.vim") " }}} " New commands {{{ command! -nargs=0 -range Indent ,call Indent() command! -nargs=0 -range FoldLongLines ,call FoldLongLines() command! -nargs=0 -range UnquoteMailBody ,call UnquoteMailBody() command! -nargs=0 CallProg call CallProg() command! -nargs=0 OpenAllWin call OpenAllWin() command! -nargs=* ReadFileAboveCursor call ReadFileAboveCursor() command! -nargs=* R call ReadFileAboveCursor() command! -nargs=0 DiacriticsOn call ChooseInputMethod(0) command! -nargs=0 DiacriticsOff let b:disable_imap=1 " }}} " Functions {{{ " Function ChangeFoldMethod() {{{ " Function for changing folding method. " if version >= 600 function! ChangeFoldMethod() abort let choice = confirm("Which folde method?", "&manual\n&indent\n&expr\nma&rker\n&syntax", 2) if choice == 1 set foldmethod=manual elseif choice == 2 set foldmethod=indent elseif choice == 3 set foldmethod=expr elseif choice == 4 set foldmethod=marker elseif choice == 5 set foldmethod=syntax else endif endfunction endif " ChangeFoldMethod() }}} " Function FoldLongLines() {{{ " if version >= 600 function! FoldLongLines() range abort let savelnum = line(".") let lnum = a:firstline let lend = a:lastline if lnum == lend " No visual area choosen --> whole file let lnum = line(".") let lend = line("$") " Go to the begin of the file exec "1go" endif while lnum <= lend " Skip closed folds if foldclosed(lnum) != -1 let lnum = foldclosedend(lnum) + 1 continue endif let dlzka = strlen(getline(".")) if dlzka >= g:fold_long_lines " Create fold for one line exec "normal zfl" endif let lnum = line(".") " Move one line down exec "normal j" if lnum == lend break endif endwhile " ...and go back exec "normal " . savelnum . "G" redraw! endfunction endif " FoldLongLines() }}} " Function AutoLastMod() {{{ " Provides atomatic change of date in files, if it is set via " modeline variable autolastmod to appropriate value. " function! AutoLastMod() if exists("g:autolastmod") if g:autolastmod < 1 return 0; elseif g:autolastmod == 1 call LastMod(g:autolastmodtext) endif endif endfunction " AutoLastMod() }}} " Function LastMod() {{{ " Automatic change date in *.html files. " function! LastMod(text, ...) mark d let line = "\\1" . strftime("%Y %b %d %X") " text of changed line let find = "g/" . a:text " regexpr to find line let matx = a:text . ".*" " ...if line was found exec find let curr_line = getline(".") if match(curr_line, matx) == 0 " call setline(line("."), line) call setline(line("."), substitute(getline("."), matx, line, "")) exec "'d" endif endfunction " LastMod() }}} " Function OpenAllWin() {{{ " Opens windows for all files in the command line. " Variable "opened" is used for testing, if window for file was already opened " or not. This is prevention for repeat window opening after ViM config file " reload. " function! OpenAllWin() " save Vim option to variable let s:save_split = &splitbelow set splitbelow let s:i = 1 if g:open_all_win == 1 while s:i < argc() if bufwinnr(argv(s:i)) == -1 " buffer doesn't exists or doesn't have window exec ":split " . escape(argv(s:i), ' \') "echo "Current window is " . bufwinnr(s:i) endif let s:i = s:i + 1 endwhile endif " force first window to be maximalized. Behaviour of vim has changed after " 6.2(?) release, therefore next command is not needed for vim < 6.2(?) exec "normal 2\\1\\" " restore Vim option from variable if s:save_split set splitbelow else set nosplitbelow endif endfunction " OpenAllWin() }}} " Function CallProg() {{{ function! CallProg() abort let choice = confirm("Call:", "&make\nm&ake in cwd\n" . \ "&compile\nc&ompile in cwd\n" . \ "&run\nr&un in cwd") if choice == 1 exec ":wall" exec "! cd %:p:h; pwd; make " . g:makeflags elseif choice == 2 exec ":wall" exec "! cd " . \ getcwd() . "; pwd; make " . g:makeflags elseif choice == 3 :call Compile(1) elseif choice == 4 :call Compile(0) elseif choice == 5 exec "! cd %:p:h; pwd; ./%:t:r" elseif choice == 6 exec "! cd " . getcwd() . "; pwd; ./%<" endif endfunction " CallProg() }}} " Function Compile() {{{ function! Compile(do_chdir) abort let cmd = "" let filename = "" let filename_ext = "" if a:do_chdir == 1 let cmd = "! cd %:p:h; pwd; " let filename = "%:t:r" let filename_ext = "%:t" else let cmd = "! cd " . getcwd() . "; pwd; " let filename = "%<" let filename_ext = "%" endif let choice = confirm("Call:", \ "&compile\n" . \ "compile and &debug\n" . \ "compile and &run\n" . \ "compile using first &line") if choice != 0 exec ":wall" endif if choice == 1 exec cmd . "gcc " . g:cflags . \ " -o " . filename . " " . filename_ext elseif choice == 2 exec cmd . "gcc " . g:cflags . " " . g:c_debug_flags . \ " -o " . filename . " " . filename_ext " && gdb " . filename elseif choice == 3 exec cmd . "gcc " . g:cflags . \ " -o " . filename . " " . filename_ext " && ./" . filename elseif choice == 4 exec cmd . "gcc " . g:cflags . \ " -o " . filename . " " . filename_ext . \ substitute(substitute(getline(2), "VIMGCC", "", "g"), "GCC", "", "g" ) endif endfunction " Compile() }}} " Function Indent() {{{ " Indents source code. function! Indent() range abort let savelnum = line(".") let lnum = a:firstline let lend = a:lastline if lnum == lend " No visual area choosen --> whole file let lnum = line(".") let lend = line("$") " Go to the begin of the file exec "1go" endif exec "normal " . lnum . "Gv" . lend . "G=" exec "normal " . savelnum . "G" endfunction " Indent() }}} " Function UnquoteMailBody() {{{ " function! UnquoteMailBody() range abort " Every backslash character must be escaped in function -- Nepto "exec "normal :%s/^\\([ ]*>[ ]*\\)*\\(\\|[^>].*\\)$/\\2/g" let savelnum = line(".") let lnum = a:firstline let lend = a:lastline if lnum == lend " No visual area choosen --> whole file let lnum = line(".") let lend = line("$") " Go to the begin of the file exec "1go" endif exec ":" . lnum . "," . lend . "s/^[ >]\\+//" exec "normal " . savelnum . "G" endfunction " UnquoteMailBody() }}} " Function SafeLineDelete() {{{ " function! SafeLineDelete() exec "normal \"_dd" endfunction " SafeLineDelete() }}} " Function GetID() {{{ " - used in statusline. " If you are root, function return "# " string --> it is showed at begin of " statusline " If you aren't root, function return empty string --> nothing is visible " Check for your name ID let g:get_id = $USER " If you are root, set to '#', else set to '' if g:get_id == "root" let g:get_id = "# " else let g:get_id = "" endif function! GetID() return g:get_id endfunction " GetID() }}} " Function ReadFileAboveCursor() {{{ " function! ReadFileAboveCursor(file, ...) let str = ":" . (v:lnum - 1) . "read " . a:file let idx = 1 while idx <= a:0 exec "let str = str . \" \" . a:" . idx let idx = idx + 1 endwhile exec str endfunction " ReadFileAboveCursor() }}} " Function RemoveAutogroup() {{{ " silent! function! RemoveAutogroup(group) silent exec "augroup! ". a:group endfunction " RemoveAutogroup() }}} " Function SmartBS() {{{ " " This function comes from Benji Fisher " http://vim.sourceforge.net/scripts/download.php?src_id=409 " (modified/patched by: Lubomir Host 'rajo' " Srinath Avadhanula ) silent function! SmartBS() let init = strpart(getline("."), 0, col(".")-1) if exists("g:smartBS_" . &filetype) silent exec "let matchtxt = matchstr(init, g:smartBS_" . &filetype . ")" echo "SmartBS(" . matchtxt . ")" if matchtxt != '' let bstxt = substitute(matchtxt, '.', "\", 'g') return bstxt else return "\" endif else return "\" endif endfunction " You can turn on smart backspacing in ftplugin by setting " g:smartBS_ variable and turning on mapping " inoremap =SmartBS() " " Example: TeX plugin " " set regular expresion for Smart backspacing " let g:smartBS_tex = '\(' . " \ "\\\\[\"^'=v]{\\S}" . '\|' . " \ "\\\\[\"^'=]\\S" . '\|' . " \ '\\v \S' . '\|' . " \ "\\\\[\"^'=v]{\\\\[iI]}" . '\|' . " \ '\\v \\[iI]' . '\|' . " \ '\\q \S' . '\|' . " \ '\\-' . " \ '\)' . "$" " " " map to function SmartBS() " inoremap =SmartBS() " }}} " Function ChooseInputMethod() {{{ function! ChooseInputMethod(method) let b:disable_imap=0 let g:available_methods = "&none\n&Tex-universal\n&tex-iso8859-2\n&iso8859-2\n&windows-1250\nunicode-&Html\n&UTF-8" if a:method == 0 let choice = confirm("Choose input mapping:", g:available_methods, 1) else let choice = a:method endif if choice == 1 let b:input_method = "NONE" elseif choice == 2 let b:input_method = "tex-universal" elseif choice == 3 let b:input_method = "tex-iso8859-2" elseif choice == 4 let b:input_method = "iso8859-2" elseif choice == 5 let b:input_method = "windows-1250" elseif choice == 6 let b:input_method = "unicode-html" elseif choice == 7 let b:input_method = "UTF-8" endif if choice == 1 let b:disable_imap = 1 elseif choice != 0 call UseDiacritics() endif endfunction "}}} " Function UseDiacritics() {{{ function! UseDiacritics() let b:disable_imap = 0 call Source("~/.vim/modules/diacritics.vim") endfunction " }}} " }}} " Autocomands {{{ if has("autocmd") " Autocomands for PlatonCopyright {{{ augroup PlatonCopyright autocmd! autocmd BufLeave * set titlestring= autocmd BufLeave * silent! call RemoveAutogroup("PlatonCopyright") autocmd WinEnter * set titlestring= autocmd WinEnter * silent! call RemoveAutogroup("PlatonCopyright") autocmd BufWrite * set titlestring= autocmd BufWrite * silent! call RemoveAutogroup("PlatonCopyright") autocmd CmdwinEnter * set titlestring= autocmd CmdwinEnter * silent! call RemoveAutogroup("PlatonCopyright") augroup END " }}} " UGLY hack - preload templatefile.vim. This is needed for loading templates " for all buffers (when opening all windows for buffers) call Source("~/.vim/plugin/templatefile.vim") augroup TemplateSystem autocmd! au BufNewFile * call LoadTemplateFile() augroup END " Autocomands for GUIEnter {{{ augroup GUIEnter autocmd! if has("gui_win32") autocmd GUIEnter * simalt ~x endif augroup END " }}} " Autocomands for ~/.vimrc {{{ augroup VimConfig autocmd! " Reread configuration of ViM if file ~/.vimrc is saved autocmd BufWritePost ~/.vimrc so ~/.vimrc | exec "normal zv" autocmd BufWritePost vimrc so ~/.vimrc | exec "normal zv" augroup END " }}} " Autocommands for *.c, *.h, *.cc *.cpp {{{ augroup C autocmd! "formatovanie C-zdrojakov autocmd BufEnter *.c,*.h,*.cc,*.cpp map mfggvG$='f autocmd BufEnter *.c,*.h,*.cc,*.cpp imap mfggvG$='fi autocmd BufEnter *.c,*.h,*.cc,*.cpp map yii yyp3wdwi autocmd BufEnter *.c,*.h,*.cc,*.cpp map :call CallProg() autocmd BufRead,BufNewFile *.c,*.h,*.cc,*.cpp setlocal cindent autocmd BufRead,BufNewFile *.c,*.h,*.cc,*.cpp setlocal cinoptions=>4,e0,n0,f0,{0,}0,^0,:4,=4,p4,t4,c3,+4,(2s,u1s,)20,*30,g4,h4 autocmd BufRead,BufNewFile *.c,*.h,*.cc,*.cpp setlocal cinkeys=0{,0},:,0#,!,o,O,e augroup END " }}} " Autocommands for *.html *.cgi {{{ " Automatic updates date of last modification in HTML files. File must " contain line "^\([]*\)Last modified: ", " else will be date writtend on the current " line. augroup HtmlCgiPHP autocmd! " Appending right part of tag in HTML files. autocmd BufEnter *.phtml imap QQ 2Ff/pF QQ 2Ff/pF QQ 2Ff/pF QQ 2Ff/pF QQ 2Ff/pF :call CallProg() autocmd BufRead,BufNewFile *.tcl setlocal autoindent augroup END " }}} " Autocomands for *.txt {{{ augroup Txt autocmd BufNewFile,BufRead *.txt setf txt augroup END " }}} " Autocomands for *.tt2 {{{ augroup Tt2 autocmd BufNewFile,BufRead *.tt2 setf tt2 augroup END " }}} " Autocomands for Makefile {{{ augroup Makefile autocmd! autocmd BufEnter [Mm]akefile* map :call CallProg() augroup END " }}} " Autocomands for GnuPG (gpg) {{{ " Transparent editing of gpg encrypted files. " By Wouter Hanegraaff , " enhanced by Lubomir Host 'rajo' " augroup GnuPG autocmd! " First make sure nothing is written to ~/.viminfo while editing " an encrypted file. " viminfo doesn't have local value, set global value instead autocmd BufReadPre,FileReadPre *.gpg,*.asc set viminfo= " We don't want a swap file, as it writes unencrypted data to disk autocmd BufReadPre,FileReadPre *.gpg,*.asc setlocal noswapfile " Switch to binary mode to read the encrypted file autocmd BufReadPre,FileReadPre *.gpg,*.asc setlocal bin autocmd BufReadPre,FileReadPre *.gpg,*.asc let ch_save = &ch | setlocal ch=2 autocmd BufReadPost,FileReadPost *.gpg,*.asc '[,']!gpg --decrypt -q -a 2>/dev/null " Switch to normal mode for editing autocmd BufReadPost,FileReadPost *.gpg,*.asc setlocal nobin autocmd BufReadPost,FileReadPost *.gpg,*.asc let &ch = ch_save | unlet ch_save autocmd BufReadPost,FileReadPost *.gpg,*.asc execute ":doautocmd BufReadPost " . expand("%:r") " Convert all text to encrypted text before writing autocmd BufWritePre,FileWritePre *.gpg,*.asc '[,']!gpg --encrypt --default-recipient-self -q -a " Undo the encryption so we are back in the normal text, directly " after the file has been written. autocmd BufWritePost,FileWritePost *.gpg,*.asc undo augroup END " }}} endif " if has("autocmd") " }}} Autocomands " Colors {{{ set background=dark hi StatusLine term=bold,reverse cterm=bold,reverse hi StatusLineNC term=reverse cterm=reverse hi User1 term=inverse,bold cterm=inverse,bold ctermfg=Red hi User2 term=bold cterm=bold ctermfg=Yellow hi User3 term=inverse,bold cterm=inverse,bold ctermfg=Blue hi User4 term=inverse,bold cterm=inverse,bold ctermfg=LightBlue hi User5 term=inverse,bold cterm=inverse,bold ctermfg=Red ctermbg=Green hi Folded term=standout cterm=bold ctermfg=Blue ctermbg=Black hi FoldColumn term=standout ctermfg=DarkBlue ctermbg=Black hi Comment term=bold ctermfg=DarkCyan " }}} call Source(VIMRC_EXTRA.".post") call Source(VIMRC_EXTRA."-".user.".post") call Source(VIMRC_EXTRA."-".machine.".post") call Source(VIMRC_EXTRA."-".machine."-".user.".post") if exists("g:open_all_win") if g:open_all_win == 1 " Open all windows only if we are not running (g)vimdiff if match(v:progname, "diff") < 0 call OpenAllWin() endif endif " turn g:open_all_win off after opening all windows " it prevents reopen windows after 2nd sourcing .vimrc let g:open_all_win = 0 endif " Modeline {{{ " vim:set ts=4: " vim600:fdm=marker fdl=0 fdc=3 " }}}