Stefans Wiki



Inhaltsverzeichnis

Meine .vimrc

~/.vimrc

  1: set nocp
  2:
  3: " Version pruefen
  4: if version < 700
  5:     echo "Fehler: Falsche Vim-Version aufgerufen! Version >= 700 ist erforderlich.\n"
  6:     quit!
  7: endif
  8:
  9: " GUI - Laden der Menues verhindern
 10: if has("gui_running")
 11:     set guioptions+=M
 12: endif
 13:
 14: set autoindent
 15: set backspace=2
 16: set backup
 17: set cmdheight=2
 18: set comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
 19: set completeopt=menuone,longest
 20: set encoding=utf-8
 21: set expandtab
 22: set fillchars=vert:\ ,stl:\ ,stlnc:\ ,
 23: set hidden
 24: set history=500
 25: set hlsearch
 26: set icon
 27: set ignorecase
 28: set incsearch
 29: set laststatus=2
 30: set lazyredraw
 31: set linebreak
 32: set listchars=precedes:$,extends:$,tab:>-,trail:.,eol:<
 33: set mouse=nvi
 34: set nonumber
 35: set printheader=%<%F%=Seite\ %N
 36: set printoptions=left:10pc,right:10pc,top:5pc,bottom:5pc,number:y
 37: set report=0
 38: set ruler
 39: set scrolloff=1
 40: set shiftwidth=4
 41: set shortmess=aoOs
 42: set showbreak=\ \|
 43: set showcmd
 44: set showmatch
 45: set showmode
 46: set sidescroll=5
 47: set smartcase
 48: set smartindent
 49: set softtabstop=4
 50: set spelllang=de,en
 51: set spellsuggest=double,10
 52: set statusline=%<%f\ %h%m%r%=%([%{Tlist_Get_Tagname_By_Line()}]%)\ #%n\ %-14.(%l/%L,%c%V%)\ %P
 53: set switchbuf=useopen,usetab
 54: set tabstop=4
 55: set textwidth=75
 56: set title
 57: set titleold=""
 58: set ttyfast
 59: set whichwrap=<,>,h,l,[,]
 60: set wildignore=*.o,*.obj,*.exe,*~,moc_*
 61: set wildmenu
 62: set wildmode=list:longest,full
 63: set wrap
 64:
 65: " Windows-Zwischenablage benutzen
 66: if has("win32")
 67:     set clipboard=unnamed
 68: endif
 69:
 70: " Syntaxeinfärbung
 71: syntax on
 72: let load_doxygen_syntax = 1
 73:
 74: " Erkennung der Dateien
 75: filetype on
 76: filetype indent on
 77: filetype plugin on
 78:
 79: " Leader
 80: let mapleader = ","
 81:
 82: " Folding
 83: "syntax sync fromstart
 84: set foldmethod=indent
 85: set nofoldenable
 86:
 87: " Plugin WManager
 88: let winManagerWindowLayout = "FileExplorer"
 89:
 90: " Plugin BuffExplorer
 91: let bufExplorerDefaultHelp = 0
 92: let bufExplorerSortBy = "number"
 93:
 94: " Plugin Tlist
 95: let Tlist_Enable_Fold_Column = 0
 96: let Tlist_Compact_Format = 1
 97: let Tlist_File_Fold_Auto_Close = 0
 98: let Tlist_GainFocus_On_ToggleOpen = 1
 99: let Tlist_Use_Right_Window = 0
100: let Tlist_Exit_OnlyWindow = 1
101: let Tlist_Sort_Type = "name"
102:
103: " Plugin Errormarker
104: let errormarker_errorgroup      = "Error"
105: let errormarker_warninggroup    = "Todo"
106: let &errorformat                = "%f:%l: %t%*[^:]:%m," . &errorformat
107: let &errorformat                = "%f:%l:%c: %t%*[^:]:%m," . &errorformat
108: let errormarker_warningtypes    = "wW"
109:
110: " Plugin MakeDoxygenComment
111: let MakeDoxygenComment_briefTag     = "@brief  "
112: let MakeDoxygenComment_paramTag     = "@param  "
113: let MakeDoxygenComment_returnTag    = "@return "
114:
115: " Plugin PHPFolding
116: let php_folding=1
117:
118: " Copy und Paste mit ^C und ^V
119: map <C-C> "*y
120: map <C-V> "*p
121: map <C-X> "*x
122:
123: " Sonstige Tasten
124: map <C-Enter> <C-]>
125: map <silent> <C-N> :nohl<CR>
126:
127: " Funktionstasten
128: nmap <silent> <F1> :bN<CR>
129: nmap <silent> <F2> :bn<CR>
130: nmap <silent> <F4> :let &wrap = !&wrap<CR>
131: nmap <silent> <F6> :echo "make: starte..."<CR>:silent make<CR>:cw<CR>:redraw!<CR>:echo "make: fertig"<CR>
132: nmap <silent> <F7> :WMToggle<CR>
133: nmap <silent> <F8> :TlistToggle<CR>
134:
135: " set tags+=~/vimfiles/qttags
136: nmap <silent> <F5> :echo "ctags: starte..."<CR>:silent !ctags -a -R --exclude=moc_* --c++-kinds=+p --fields=+iaS --extra=+q --languages=c++ .<CR>:redraw!<CR>:echo "ctags: fertig"<CR>
137: nmap <silent> <S-F5> :echo "ctags: starte..."<CR>:silent !ctags -R --exclude=moc_* --c++-kinds=+p --fields=+iaS --extra=+q --languages=c++ .<CR>:redraw!<CR>:echo "ctags: fertig"<CR>
138: nmap <silent> <S-F6> :echo "qmake: starte..."<CR>:silent !qmake -project<CR>:silent !qmake<CR>:redraw!<CR>:echo "qmake: fertig"<CR>
139:
140: " Eingabe vervollstaendigen
141: inoremap " ""<Left>
142: inoremap ' ''<Left>
143:
144: " Autocommands
145: if has("autocmd")
146:     " Verzeichnis wechseln
147:     autocmd BufEnter * :silent! lcd %:p:h
148:
149:     " Konfigurationsdateien
150:     if has("win32")
151:         autocmd! BufWritePost _vimrc source ~/_vimrc
152:         autocmd BufWritePost _vimrc setlocal nowrap number textwidth=0
153:     else
154:         autocmd! BufWritePost .vimrc source ~/.vimrc
155:         autocmd BufWritePost .vimrc setlocal nowrap number textwidth=0
156:     endif
157:     autocmd FileType vim setlocal nowrap number textwidth=0
158:     autocmd FileType xdefaults setlocal nowrap number textwidth=0
159:
160:     " Entwicklung
161:     augroup development
162:         autocmd!
163:         autocmd Filetype c,cpp,php,sh,java,javascript,perl,css,python inoremap <buffer> { {<CR>}<C-O>O
164:         autocmd Filetype c,cpp,php,sh,java,javascript,perl,css,html,dosbatch,python,idlang inoremap <buffer> ( (  )<Left><Left>
165:         autocmd Filetype c,cpp,php,sh,java,javascript,perl,css,html,dosbatch,python,idlang inoremap <buffer> [ []<Left>
166:         autocmd Filetype c,cpp setlocal cindent nowrap number textwidth=0
167:         autocmd FileType make,php,sh,javascript,perl,css,dosbatch,python,xml,idlang setlocal nowrap number textwidth=0
168:         autocmd FileType html setlocal number textwidth=0
169:         autocmd BufWritePost *.cpp,*.h,*.c call UpdateCTags()
170:         autocmd Filetype taglist setlocal statusline=Taglist
171:     augroup END
172:
173:     " LaTeX
174:     augroup latex
175:         autocmd!
176:         autocmd FileType tex setlocal number spell
177:     augroup END
178:
179:     " Sonstiges
180:     autocmd BufWritePost *.Xdefaults call UpdateXdefaults()
181: endif
182:
183: " Farbe
184: let xterm16_brightness  = "high"
185: let xterm16_colormap    = "soft"
186: colorscheme stefan
187:
188: " Eigene Funktionen
189:
190: " Tags aktualisieren
191: function! UpdateCTags()
192:     let _result_ = system('ctags -a --exclude=moc_c* --c++-kinds=+p --fields=+iaS --extra=+q --languages=c++ '.expand("%:p"))
193:     unlet _result_
194: endfunction
195:
196: " XResources aktualisieren
197: function! UpdateXdefaults()
198:     let _result_ = system('xrdb '.expand("%:p"))
199:     unlet _result_
200: endfunction

Erklärung

set nocp
Deaktiviert den Kompatiblitäts-Modus für den klassischen Vi, der Editor wird dadurch angenehmer zu bedienen.
set autoindent
Automatisch den Text einrücken.
set backspace=2
Erlaubt Backspace über Zeilenumbrüche und automatischen Texteinzug
set backup
Sicherheitskopien der bearbeiteten Dateien anlegen.
set cmdheight=2
Zwei Zeilen für die Kommandoeingabe anzeigen.
set comments
Beinhaltet die verschiedenen Kommentarzeichen die mit Kommas voneinander getrennt werden.
set completeopt=menuone,longest
Art des Menüs und der Anzeige von Omnicompletition.
set encoding=utf-8
Setzt die Zeichensatzkodierung auf UTF8 (für Mac)
set expandtab
Ersetzt während der Eingabe die Tabulatoren durch die entsprechende Anzahl von Leerzeichen. Sehr praktisch wenn man den bearbeiteten Text nachher noch irgendwo anders einfügen will.
set fillchars
Die einzelnen Füllzeichen der Statuszeile oder Trennzeile zwischen den einzelnen Buffern.
set hidden
Erlaubt das wechseln der Buffer ohne das der Text vorher abgespeichert werden muß.
set history=500
Anzahl der Befehle des Kommanod-Modus die gespeichert werden.
set hlsearch
Markiert bei der Suche alle gefundenen Textstellen.
set icon
Ähnlich set title, betrifft aber nur Terminal-Fenster die Icons darstellen können.
set ignorecase
Groß-/Kleinschreibung bei der Suche ignorieren.
set incsearch
Während der Eingabe des Suchtextes schon anfangen zu suchen.
set laststatus=2
Statuszeile dauernd anzeigen.
set lazyredaw
Bei der Ausführung eines Makros den Bildschirm nicht dauernd neu aufbauen.
set listchars
Darstellung der unsichtbaren Zeichen, z.B. Tabulatoren, beim ausführen von set list.
set mouse=nvi
Benutzung der Maus im Modus Normal, Visual und Insert erlauben.
set number
Zeilennummer anzeigen.
set printheader=%<%F%=Seite\ %N
Kopfzeile beim Ausdruck.
set printoptions
Diverse Einstellungen für den Ausdruck, z.B. Seitenrand und Zeilennummerierung.
set report=0
Gibt die Anzahl der Zeilen an, bei deren Änderung ein Hinweis (Report) erscheint.
set ruler
Position des Cursors in der Statuszeile anzeigen.
set scrolloff=1
Anzahl der Zeilen am oberen und unteren Rand die zwischen Cursor und Rand sein müssen damit der Text weiter gescrollt wird. In diesem Beispiel wird mir somit immer 1 Zeile über- oder unterhalb des Cursors angezeigt. Siehe auch set sidescroll.
set shiftwidth=4
Setzt die Anzahl der Leerstellen die bei automatischem Texteinzug (z.B. smartindent) genutzt werden, nur sinnvoll in Verbindung mit softtabstop.
set shortmess=aoOs
Zählt die Ereignisse auf für die nur eine Kurzmitteilung ausgegeben werden soll, z.B. [+] anstatt von [Modified].
set showbreak=\ \|
Zeichen das bei umbrochenen Zeilen (set wrap) an den Zeilenanfang gestellt wird.
set showcmd
Zeigt rechts unten kurze Infos über die aktuelle Aktion an, z.B. die Anzahl der markierten Zeichen, Zeilen oder die gedrückte Taste.
set showmatch
Befindet sich der Cursor über einer Klammer, oder wird eine eingegeben, so wird die dazugehörige Klammer entsprechend farbig hervorgehoben.
set showmode
Zeigt den aktuellen Modus am unteren Rand an.
set sidescroll=5
Anzahl der Zeichen die beim links oder rechts herausscrollen der Text verschoben wird. Siehe auch set scrolloff.
set smartcase
Groß-/Kleinschreibung bei der Suche unterscheiden falls der Suchtext Großbuchstaben enthält.
set smartident
Art des Verfahren des automatischen Texteinzug.
set softtabstop=4
Die angezeigte Tabulatorweite wird auf 4 Leerstellen gesetzt (die eigentliche Tabulatorweite bzw. das Tabulatorzeichen wird aber nicht beeinflusst), nur sinnvoll in Verbindung mit shiftwidth.
set spelllang=de,en
Angabe der Sprachen für die Rechtschreibprüfung.
set spellsuggest=double,10
Art der Rechtschreibkontrolle und die Anzahl der vorgeschlagenen Worte.
set statusline
Hiermit kann das Aussehen der Statuszeile angepasst werden.
set tabstop=4
Anzahl der Leerzeichen als die ein Tab interprtiert werden soll. Nur sinnvoll in Verbindung mit shiftwidth und softtabstop.
set textwidth=75
Eingegebenen Text nach 75 Zeichen automatisch umbrechen.
set title
Text der Titelzeile des Terminal-Fenster wird auf den Dateinamen und diverse Statusinformationen gesetzt.
set titleold
Text der Titelzeile auf die das Terminal-Fenster nach beenden von Vim gesetzt wird.
set ttyfast
Weisst Vim darauf hin das eine schnelle Terminal-Verbindung (arbeite ja eh fast nur lokal) besteht.
set whichwrap=<,>,h,l,[,]
Angabe von speziellen Tasten bei denen der Cursor in die nächste bzw. vorhergehende Zeile springt.
set wildignore=*.o,*.obj,*.exe,*~
Dateifilter von Dateien die nicht im wildmenu angezeigt werden sollen.
set wildmenu
Kommandozeile kann mit Tab vervollständigt werden.
set wildmode
Art und Weise wie das wildmenu arbeitet.
set wrap
Lange Zeilen am Fensterrand umbrechen.
set ttymouse=xterm2
Art des Terminals und welche Maus-Codes interpretiert werden. Wird eigentlich automatisch erkannt.
syntax on
Aktiviert die Syntaxeinfärbung.
filetype on
Automatische Erkennung welcher Dateityp gerade bearbeitet/geladen wird und die entsprechende Reaktion, z.B. automatisch Plugin (filetype plugin on) laden.
let mapleader
Leader-Taste neu festlegen (einfacher einzugeben als ein \).
syntax sync fromstart
Stellt eine korrekte Syntaxeinfärbung sicher, kann aber u.U. den Vorgang verlangsamen.
set foldmethod=indent
Art der Methode nach der der Code gefaltet werden soll.
set nofoldenable
Code nach dem Laden nicht autoamtisch komplett falten.

Information

Zu jedem Parameter oder Befehl kann man sich in Vim mit Hilfe des Befehls

:help [Text]

einen Hilfetext anzeigen lassen, z.B. :help icon.

Alle verfügbaren Parameter und deren Einstellung bekommt man mit dem Befehl :set all angezeigt.

unix/vim/meine_.vimrc.txt · Zuletzt geändert: 24.03.2011 22:05 (Externe Bearbeitung)
Quelle: http://stefanjahn.de/unix:vim:meine_.vimrc
Webseite: http://stefanjahn.de