Vim Konfiguration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
  
 
  :edit $MYVIMRC
 
  :edit $MYVIMRC
Viele Einstellungen sind über :help aufrufbar. Für komplexere Verhalten können Funktionen in VimScript definiert werden. In NeoVim kann man das auch mit Lua machen. Die folgende Befehle sind für die Default ~/.vimrc
+
Viele Einstellungen sind über :help aufrufbar. Für komplexere Verhalten können Funktionen in VimScript definiert werden (in NeoVim kann man das auch mit Lua machen). Die folgende Befehle sind für die Default ~/.vimrc
 +
 
 +
Man kann die Konfigurationsdatei neuladen mit:
 +
 
 +
:so $MYVIMRC
 +
<span id="generelle-einstellungen-für-bequemlichkeiten"></span>
 +
= Generelle Einstellungen für Bequemlichkeiten =
 +
 
 +
<span id="undo-history-nach-dem-schließen-von-vim"></span>
 +
== Undo-History nach dem Schließen von Vim ==
 +
 
 +
Wenn man sich die Undos selbst nach dem Schließen von Vim merken will kann man das so erreichen:
 +
 
 +
set undofile
 +
<span id="absolute-und-relative-zeilennummerierung"></span>
 +
== Absolute und relative Zeilennummerierung ==
 +
 
 +
Nüztlich für Navigation über mehrere Zeilen:
 +
 
 +
set number
 +
set relativenumber
 +
<span id="auswahlmenü-für-autocomplete"></span>
 +
== Auswahlmenü für Autocomplete ==
 +
 
 +
Zeigt in der Statusleiste ein Menü für Kommandovervollständigung:
 +
 
 +
set wildmenu
 +
<span id="eigene-tastenbelegungen"></span>
 +
= Eigene Tastenbelegungen =
 +
 
 +
Man kann in Vim für verschiedene Modi unterschiedliche Tastenkombinationen zuweisen, um so das gewünschte Verhalten anzupassen.
  
 
<span id="automatische-klammernanführungszeichen"></span>
 
<span id="automatische-klammernanführungszeichen"></span>
= Automatische Klammern/Anführungszeichen =
+
== Automatische Klammern/Anführungszeichen ==
  
 
Normalerweise folgt auf ein Klammerauf oder Anführungszeichen ein abschließendes Zeichen. Es kann aber sein, dass man vergisst diese zu tippen. Mit den folgenden Zeilen werden automatisch Klammern und Anführungszeichen gesetzt:
 
Normalerweise folgt auf ein Klammerauf oder Anführungszeichen ein abschließendes Zeichen. Es kann aber sein, dass man vergisst diese zu tippen. Mit den folgenden Zeilen werden automatisch Klammern und Anführungszeichen gesetzt:
Zeile 23: Zeile 53:
 
  inoremap "" "
 
  inoremap "" "
 
<span id="schnell-einklammern"></span>
 
<span id="schnell-einklammern"></span>
= Schnell Einklammern =
+
== Schnell Einklammern ==
  
 
Oft hat man Text geschrieben, den man im nachhinein einklammern oder in Anführungszeichen setzen will. Normalerweise müsste man dafür:
 
Oft hat man Text geschrieben, den man im nachhinein einklammern oder in Anführungszeichen setzen will. Normalerweise müsste man dafür:
Zeile 44: Zeile 74:
 
Nun kann man in den Visual-Mode wechseln und <Leader> (Normalerweise “\”) + Klammerauf bzw. Anführungszeichen tippen, um schnell den markierten Text einklammern.
 
Nun kann man in den Visual-Mode wechseln und <Leader> (Normalerweise “\”) + Klammerauf bzw. Anführungszeichen tippen, um schnell den markierten Text einklammern.
  
<span id="generelle-einstellungen-für-bequemlichkeiten"></span>
+
<span id="skript-ausführen"></span>
= Generelle Einstellungen für Bequemlichkeiten =
+
== Skript ausführen ==
  
<span id="undo-history-nach-dem-schließen-von-vim"></span>
+
Vim kann im Command-Mode Shell-Befehle ausführen. Wenn man also ein Shell-Skript in Vim ausführen will ohne das Programm zu verlassen, muss man die folgende Konfiguration vornehmen:
== Undo-History nach dem Schließen von Vim ==
 
  
Wenn man sich die Undos selbst nach dem Schließen von Vim merken will kann man das so erreichen:
+
autocmd Filetype sh,bash,zsh nnoremap <buffer> <F5> :w<CR>:!sh %<CR>
 +
Nun kann man per F5 im Normal-Mode das momentan offene Shell-Skript ausführen. Das %-Zeichen steht für den Dateinamen.
  
set undofile
+
Dasselbe lässt sich auch auf andere Skriptsprachen wie Python umsetzen:
<span id="absolute-und-relative-zeilennummerierung"></span>
 
== Absolute und relative Zeilennummerierung ==
 
  
Nüztlich für Navigation über mehrere Zeilen:
+
  autocmd Filetype python nnoremap <buffer> <F5> :w<CR>:!python3 %<CR>
 
 
  set number
 
set relativenumber
 
<span id="auswahlmenü-für-autocomplete"></span>
 
== Auswahlmenü für Autocomplete ==
 
 
 
Zeigt in der Statusleiste ein Menü für Kommandovervollständigung:
 
 
 
set wildmenu
 

Aktuelle Version vom 10. Oktober 2022, 10:30 Uhr

Allgemein

Vim kann über die $MYVIMRC Datei konfiguriert werden. Dazu öffnet man Vim und gibt den Befehl:

:edit $MYVIMRC

Viele Einstellungen sind über :help aufrufbar. Für komplexere Verhalten können Funktionen in VimScript definiert werden (in NeoVim kann man das auch mit Lua machen). Die folgende Befehle sind für die Default ~/.vimrc

Man kann die Konfigurationsdatei neuladen mit:

:so $MYVIMRC

Generelle Einstellungen für Bequemlichkeiten

Undo-History nach dem Schließen von Vim

Wenn man sich die Undos selbst nach dem Schließen von Vim merken will kann man das so erreichen:

set undofile

Absolute und relative Zeilennummerierung

Nüztlich für Navigation über mehrere Zeilen:

set number
set relativenumber

Auswahlmenü für Autocomplete

Zeigt in der Statusleiste ein Menü für Kommandovervollständigung:

set wildmenu

Eigene Tastenbelegungen

Man kann in Vim für verschiedene Modi unterschiedliche Tastenkombinationen zuweisen, um so das gewünschte Verhalten anzupassen.

Automatische Klammern/Anführungszeichen

Normalerweise folgt auf ein Klammerauf oder Anführungszeichen ein abschließendes Zeichen. Es kann aber sein, dass man vergisst diese zu tippen. Mit den folgenden Zeilen werden automatisch Klammern und Anführungszeichen gesetzt:

inoremap ( ()<Esc>i
inoremap { {}<Esc>i
inoremap [ []<Esc>i
inoremap " ""<Esc>i

Wenn man dieses Verhalten nicht will, kann man mit folgender Konfiguration durch ein Double-Tap nur eine Seite setzen:

inoremap (( (
inoremap {{ {
inoremap [[ [
inoremap "" "

Schnell Einklammern

Oft hat man Text geschrieben, den man im nachhinein einklammern oder in Anführungszeichen setzen will. Normalerweise müsste man dafür:

  • in den Insert-Modus wechseln
  • Klammerauf tippen
  • in den Normal-Modus wechseln
  • Zum Klammerende navigieren
  • in den Insert-Modus wechseln
  • Klammerzu tippen

Dies kann auf Dauer lästig sein, weshalb folgende Befehle diese Sache drastisch vereinfachen können:

vnoremap <Leader>( s(<C-r>")<Esc>
vnoremap <Leader>[ s[<C-r>"]<Esc>
vnoremap <Leader>{ s{<C-r>"}<Esc>
vnoremap <Leader>' s'<C-r>"'<Esc>
vnoremap <Leader>" s"<C-r>""<Esc>

Nun kann man in den Visual-Mode wechseln und <Leader> (Normalerweise “\”) + Klammerauf bzw. Anführungszeichen tippen, um schnell den markierten Text einklammern.

Skript ausführen

Vim kann im Command-Mode Shell-Befehle ausführen. Wenn man also ein Shell-Skript in Vim ausführen will ohne das Programm zu verlassen, muss man die folgende Konfiguration vornehmen:

autocmd Filetype sh,bash,zsh nnoremap <buffer> <F5> :w<CR>:!sh %<CR>

Nun kann man per F5 im Normal-Mode das momentan offene Shell-Skript ausführen. Das %-Zeichen steht für den Dateinamen.

Dasselbe lässt sich auch auf andere Skriptsprachen wie Python umsetzen:

autocmd Filetype python nnoremap <buffer> <F5> :w<CR>:!python3 %<CR>