Suche…


Die vimrc-Datei

Die .vimrc Datei (ausgesprochen Vim-wreck) ist eine Vim-Konfigurationsdatei. Es enthält Befehle, die von Vim bei jedem Start ausgeführt werden.

Standardmäßig ist die Datei leer oder nicht vorhanden. Sie können es verwenden, um Ihre Vim-Umgebung anzupassen.

Um herauszufinden, wo Vim erwartet, dass die Vimrc-Datei gespeichert wird, öffnen Sie Vim und führen Sie Folgendes aus:

:echo $MYVIMRC

Unix: Auf einem Unix-System wie Mac oder Linux heißt Ihre vimrc .vimrc und befindet sich normalerweise in Ihrem Home-Verzeichnis ( $HOME/.vimrc ).

Windows: Unter Windows heißt es _vimrc und befindet sich in Ihrem Home-Verzeichnis ( %HOMEPATH%/_vimrc ).

Beim Start sucht Vim an mehreren Stellen nach einer Vimrc-Datei. Das erste, was existiert, wird verwendet, die anderen werden ignoriert. Eine vollständige Referenz finden Sie im :h $MYVIMRC Dokumentationsartikel.

Welche Optionen kann ich verwenden?

Wenn Sie nicht wissen, welche Optionen Sie verwenden sollen, sind Sie möglicherweise an dem Befehl :options interessiert.

Dadurch wird ein Split geöffnet, in dem alle Vim-Optionen aufgelistet sind und der aktuelle Wert angezeigt wird. Es gibt 26 Abschnitte, in denen alle Optionen angezeigt werden, die Sie ausprobieren können.

z.B

4 displaying text

scroll    number of lines to scroll for CTRL-U and CTRL-D
    (local to window)
     set scr=20
scrolloff    number of screen lines to show around the cursor
     set so=5
wrap    long lines wrap
     set nowrap    wrap

...

In einer set nowrap (zB set nowrap ) können Sie CR drücken, um den Wert set nowrap (wenn es sich um einen binären Wert handelt). In einer Optionszeile (z. B. wrap long line wrap ) können Sie CR drücken, um auf die Dokumentation für diese Option zuzugreifen.

Dateien und Verzeichnisse

Was auch immer Sie tun, um Vim anzupassen, es sollte NIE außerhalb von $HOME passieren:

  • Unter Linux, BSD und Cygwin ist $HOME normalerweise /home/username/ ,
  • Unter Mac OS X ist $HOME /Users/username/ ,
  • Unter Windows ist $HOME normalerweise C:\Users\username\ .

Der kanonische Speicherort für Ihr vimrc und Ihr vim Verzeichnis befindet sich im Stammverzeichnis dieses $HOME Verzeichnisses:

  • auf Unix-ähnlichen Systemen

    $HOME/.vimrc       <-- the file
    $HOME/.vim/        <-- the directory
    
  • unter Windows

    $HOME\_vimrc       <-- the file
    $HOME\vimfiles\    <-- the directory
    

Das obige Layout funktioniert garantiert jetzt und in der Zukunft.

Vim 7.4 hat es möglich gemacht, Ihre schöne vimrc in Ihrem vim Verzeichnis zu behalten. Es ist wirklich eine gute Idee, schon weil es einfacher ist, die Konfiguration zu verschieben.

Wenn Sie ausschließlich 7.4 verwenden, reicht Folgendes aus:

  • auf Unix-ähnlichen Systemen

    $HOME/.vim/vimrc
    
  • unter Windows

    $HOME\vimfiles\vimrc
    

Wenn Sie die Vorteile eines in sich geschlossenen vim/ nutzen möchten, aber sowohl 7.4 als auch eine ältere Version oder nur eine ältere Version verwenden möchten, besteht die einfachste und zukunftssicherste Lösung darin, diese Zeile und nur diese Zeile anzugeben:

runtime vimrc

in dieser Datei:

  • auf Unix-ähnlichen Systemen

    $HOME/.vimrc
    
  • unter Windows

    $HOME\_vimrc
    

und führen Sie Ihre Konfiguration in $HOME/.vim/vimrc oder $HOME\vimfiles\vimrc .

Optionen

Es gibt drei Arten von Optionen:

  • boolesche Optionen,
  • String-Optionen,
  • Anzahl Optionen.

Um den Wert einer Option zu überprüfen,

  • Verwendung :set option? den Wert einer Option prüfen,
  • Verwendung :verbose set option? zu sehen, wo es zuletzt eingestellt wurde.

Boolesche Optionen einstellen

set booloption      " Set booloption.
set nobooloption    " Unset booloption.

set booloption!     " Toggle booloption.

set booloption&     " Reset booloption to its default value.

String-Optionen einstellen

set stroption=baz   " baz

set stroption+=buzz " baz,buzz
set stroption^=fizz " fizz,baz,buzz
set stroption-=baz  " fizz,buzz

set stroption=      " Unset stroption.

set stroption&      " Reset stroption to its default value.

Anzahl Optionen einstellen

set numoption=1     " 1

set numoption+=2    " 1 + 2 == 3
set numoption-=1    " 3 - 1 == 2
set numoption^=8    " 2 * 8 == 16

Einen Ausdruck als Wert verwenden

  • mit Verkettung:

    execute "set stroption=" . my_variable
    
  • mit :let :

    let &stroption = my_variable
    

Siehe :help :set und :help :let .

Zuordnungen

  • Fügen Sie nach den Zuordnungen keine Kommentare ein, da dies zu einem Bruch führt.
  • Verwenden Sie :map <F6> zu sehen, was in welchem ​​Modus auf <F6> abgebildet ist.
  • Verwenden Sie :verbose map <F6> um auch zu sehen, wo sie zuletzt zugeordnet wurde.
  • :map und :map! sind zu generisch. Verwenden Sie :n[nore]map für Normalmoduszuordnungen,: :i[nore]map für Einfügemodus :x[nore]map für visuellen Modus usw.

Rekursive Zuordnungen

Verwenden Sie rekursive Zuordnungen nur, wenn Sie beabsichtigen, andere Zuordnungen in Ihren Zuordnungen zu verwenden:

nnoremap b     B
nmap     <key> db

In diesem Beispiel arbeitet b im Normalmodus wie B Da wir b in einem rekursiven Mapping verwenden, funktioniert das Drücken von <key> wie dB und nicht wie db .

Nicht-rekursive Zuordnungen

Verwenden Sie nicht-rekursive Zuordnungen nur, wenn Sie in Ihren Zuordnungen Standardbefehle verwenden möchten. Dies ist fast immer das, was Sie möchten:

nnoremap <key> db

In diesem Beispiel verwenden wir b in einem nichtrekursiven Mapping, sodass das Drücken der Taste immer wie db funktioniert, unabhängig davon, ob wir b oder nicht.

Befehl aus einem Mapping ausführen

nnoremap <key> :MyCommand<CR>

Mehrere Befehle aus einem Mapping ausführen

nnoremap <key> :MyCommand <bar> MyOtherCommand <bar> SomeCommand<CR>

Aufruf einer Funktion aus einem Mapping

nnoremap <key> :call SomeFunction()<CR>

Zuordnen einer <Plug> -Zuordnung

map <key> <Plug>name_of_mapping

Siehe :help map-commands , :help key-notation und :help <plug> .

Weitere Informationen finden Sie unter Tastenzuordnungen in Vim

Variablen

Wie die meisten Skriptsprachen verfügt Vimscript über Variablen.

Man kann eine Variable mit dem Befehl: :let :

let variable = value

und lösche es mit :unlet :

unlet variable

In Vim können Variablen festgelegt werden, indem ihrem Namen ein einzelner Buchstabe und ein Doppelpunkt vorangestellt wird. Plugin-Autoren verwenden diese Funktion, um Optionen nachzuahmen:

let g:plugin_variable = 1

Siehe :help internal-variables .

Befehle

  • Vergessen Sie nicht den Knall, damit Vim diesen Befehl beim nächsten Laden Ihres vimrc überschreiben kann.
  • Benutzerdefinierte Befehle müssen mit einem Großbuchstaben beginnen.

Beispiele

command! MyCommand call SomeFunction()
command! MyOtherCommand command | Command | command
  • Siehe :help user-commands .

Funktionen

  • Vergessen Sie nicht den Knall, damit Vim diese Funktion das nächste Mal überschreiben kann, wenn Sie das Skript neu laden, in dem die Funktion definiert ist.
  • Benutzerdefinierte Funktionen müssen entweder mit einem Großbuchstaben (globale Funktionen) oder mit s: (Skriptlokale Funktionen) beginnen oder ihnen muss der Name vorangestellt werden, der dem Autoload-Plugin zugeordnet ist, wo sie definiert sind (z. B. in {&rtp}/autoload/foo/bar.vim könnten wir foo#bar#functionname() ) definieren.
  • Um die Parameter in der Funktion verwenden zu können, verwenden Sie a:parameter_name . Mit den Auslassungspunkten ... können variadische Funktionen definiert werden. Für den Zugriff auf die Parameter verwenden Sie a:000 (Liste aller Parameter) oder a:0 (Anzahl der Parameter entspricht len(a:000) ), a:1 zuerst unbenannt Parameter und so weiter.
  • Funktionen können wie :call MyFunction(param1, param2)
  • Jede Zeile in einer Funktion beginnt implizit mit ein : , damit alle Befehle Doppelpunkt - Befehle
  • Um zu verhindern, dass die Funktion im Fehlerfall ihre Ausführung fortsetzt, sollten Sie die Funktionssignatur am besten mit abort

Beispiel

function! MyFunction(foo, bar, ... ) abort
    return a:foo . a:bar . (a:0 > 0 ? a:1 : '')
endfunction

Skriptfunktionen

Wenn Sie planen, Ihre Funktion nur in der Datei zu verwenden, in der sie definiert ist (entweder weil Sie eine größere Funktion in kleineren Teilen beschädigt haben oder weil Sie sie in einem Befehl, einem Mapping usw. verwenden), können Sie das Präfix verwenden es mit s: :, um zu vermeiden, dass Ihr globaler Namespace mit nutzlosen internen Funktionen verschmutzt wird:

function! s:my_private_function() " note we don't need to capitalize the first letter this time
    echo "Hi!"
endfunction

S: Funktionen aus Zuordnungen verwenden

Wenn Ihre lokale Skriptfunktion in einem Mapping verwendet werden soll, müssen Sie sie mit dem speziellen Präfix <SID> referenzieren:

nnoremap <your-mapping-key> :call <SID>my_private_function()<CR>

Siehe :help user-functions .

Beachten Sie jedoch, dass es seit Vim 7 eine bewährte Methode ist, Mappings, Befehle und Menüs in (ft) -Plugins und Funktionen für das automatische Laden von Plugins zu definieren - mit Ausnahme der Funktionen, die die Plugins beim Laden benötigen. Dies bedeutet, dass heutzutage die Notwendigkeit, lokale Funktionen von Skripts über Zuordnungen aufzurufen, nicht so relevant ist wie zuvor.

Autobefehlsgruppen

  • Autocommand-Gruppen sind gut für die Organisation, sie können jedoch auch für das Debugging nützlich sein. Stellen Sie sich diese als kleine Namespaces vor, die Sie nach Belieben aktivieren / deaktivieren können.

Beispiel

augroup MyGroup
    " Clear the autocmds of the current group to prevent them from piling
    " up each time you reload your vimrc.
    autocmd!

    " These autocmds are fired after the filetype of a buffer is defined to
    " 'foo'. Don't forget to use 'setlocal' (for options) and '<buffer>'
    " (for mappings) to prevent your settings to leak in other buffers with
    " a different filetype.
    autocmd FileType foo setlocal bar=baz
    autocmd FileType foo nnoremap <buffer> <key> :command<CR>

    " This autocmd calls 'MyFunction()' everytime Vim tries to create/edit
    " a buffer tied to a file in /'path/to/project/**/'.
    autocmd BufNew,BufEnter /path/to/project/**/* call MyFunction()
augroup END

Siehe :help autocommand .

Conditionals

if v:version >= 704
    " Do something if Vim is the right version.
endif

if has('patch666')
    " Do something if Vim has the right patch-level.
endif

if has('feature')
    " Do something if Vim is built with 'feature'.
endif

Siehe :help has-patch und :help feature-list .

Einstellmöglichkeiten

Normalerweise verwenden Sie :set .vimrc Sie fest, welche Optionen in Ihrem .vimrc nach Ihren Wünschen .vimrc . Es gibt viele Optionen, die geändert werden können.

Zum Beispiel, um Leerzeichen für die Einrückung zu verwenden:

:set expandtab
:set shiftwidth=4
:set softtabstop=4

Satzstellung markieren

Aktivieren Sie die Syntaxhervorhebung, wenn das Terminal Farben hat

if &t_Co > 2 || has("gui_running")
    syntax on
end

Nachgestellte Leerzeichen und Tabulatoren anzeigen. Das Anzeigen von Registerkarten kann besonders bei der Suche nach Fehlern in Makefiles hilfreich sein.

set list listchars=tab:\|_,trail:.
highlight SpecialKey ctermfg=DarkGray

Farbschemata

Vim verfügt über mehrere vorinstallierte Farbschemata. In Linux werden die mit Vim /usr/share/vim/vim74/colors/ Farbschemas in /usr/share/vim/vim74/colors/ gespeichert (wobei 74 Ihre Versionsnummer ist, mehrere Zeiträume). MacVim speichert sie in /Applications/MacVim.app/Contents/Resources/vim/runtime/colors .

Farbschemas ändern

Der Befehl colorscheme wechselt das aktuelle Farbschema.

Um zum Beispiel das Farbschema auf "Robokai" zu setzen:

:colorscheme robokai

Das Standardfarbschema hat den kreativen Namen default , um es wieder zu verwenden

:colorscheme default

Um alle derzeit installierten Farbschemata :colorscheme , geben Sie :colorscheme gefolgt von Leerzeichen und dann entweder Tab oder Strg d .

Farbschemas installieren

~/.vim/colors/ Benutzer installierte Farbschemata können in ~/.vim/colors/ . Wenn ein Farbschema zu diesem Verzeichnis hinzugefügt wird, wird es als Option für den Befehl colorscheme .

Um neue Farbschemata zu finden, gibt es Standorte wie Vimcolors, die verschiedene Farbschemata enthalten. Es gibt auch Tools wie vim.ink und Vivify , die Sie beim Erstellen Ihrer eigenen Farbschemas unterstützen, oder Sie können sie von Hand erstellen.

Zeilenaufzählung umschalten

Um es zu aktivieren, geben Sie Folgendes ein:

:set number oder :set nu .

Zu deaktivieren - geben Sie ein:

:set nonumber oder :set nonu .

Um die Aufzählung relativ zur Cursorposition zu aktivieren, geben Sie Folgendes ein:

:set relativenumber .

Um die Aufzählung relativ zur Cursorposition zu deaktivieren, geben Sie Folgendes ein:

:set norelativenumber .

Hinweis: Um zu ändern, ob in der aktuellen Zeile die tatsächliche Zeilennummer oder 0 :set nonumber Befehle :set number und :set nonumber , während das Attribut relativenumber aktiv ist.

Plugins

Vim-Plugins sind Addons, mit denen die Funktionalität von vim geändert oder erweitert werden kann.

Vimawesome bietet eine gute Liste von Plugins



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow