Suche…


Einführung

Durch die Aktualisierung von Vim-Tastenzuordnungen können Sie zwei Arten von Problemen lösen: Erneutes Zuweisen von Tastenbefehlen zu Buchstaben, die einprägsamer oder zugänglicher sind, und Erstellen von Tastenbefehlen für Funktionen, die keine haben. Hier erfahren Sie mehr über die verschiedenen Arten, wie Sie Tastenbefehle zuordnen und den Kontext, auf den sie sich beziehen (z. B. Vim-Modi).

Grundlegende Zuordnung

Übersichtskarte

Eine Schlüsselsequenz kann in einer anderen Tastenfolge erneut abgebildet wird eine der mit den map

Beispielsweise verlässt die folgende typische map den Einfügemodus, wenn Sie j k in schneller Reihenfolge drücken:

:inoremap jk <Esc>

Kartenoperator

Es gibt mehrere Varianten von :map für verschiedene Modi.

Befehle Modi
:map :noremap :unmap :noremap :unmap Normaler, visueller und vom Bediener anstehender Modus
:map! , :noremap! , :unmap! Einfügen und Befehlszeilenmodus
:nmap :nnoremap :nunmap :nnoremap :nunmap Normaler Modus
:imap :inoremap :iunmap :inoremap :iunmap Einfüge- und Ersetzungsmodus
:vmap :vnoremap :vunmap :vnoremap :vunmap Sicht- und Auswahlmodus
:xmap :xnoremap :xunmap :xnoremap :xunmap Visueller Modus
:smap :snoremap :sunmap :snoremap :sunmap Auswahlmodus
:cmap :cnoremap :cunmap :cnoremap :cunmap Befehlszeilenmodus
:omap :onoremap :ounmap :onoremap :ounmap Betreiber ausstehender Modus

Normalerweise sollten Sie die :noremap Varianten verwenden ; Dies macht das Mapping gegen Remapping und Rekursion immun.

Befehl map

  • Sie können alle Zuordnungen anzeigen mit :map (oder einer der oben genannten Variationen).
  • Um die aktuelle Zuordnung für eine bestimmte Tastenfolge anzuzeigen, verwenden Sie :map <key> wobei <key > eine Tastenfolge ist
  • Sondertasten wie Esc werden mit der speziellen Notation <> wie <Esc> . Die vollständige Liste der Schlüsselcodes finden Sie unter http://vimdoc.sourceforge.net/htmldoc/intro.html#keycodes
  • :nmapclear - Alle Karten im :nmapclear
  • :nunmap - Hebt eine normale Moduszuordnung auf
  • Sie können durch eine Änderung der die maximale Zeit zwischen den Tasten einer Sequenz konfigurieren timeout und ttimeout Variablen

Beispiele

  • imap jk <Esc> : jk im Einfügemodus jk eingeben, imap jk <Esc> Sie zum normalen Modus zurück
  • nnoremap tt :tabnew<CR> tt im normalen Modus eingeben, wird eine neue Registerkarte geöffnet
  • nnoremap <Cj> <Cw>j : <Cj> im normalen Modus <Cj> , springen Sie zum Fenster darunter und nach links
  • vmap <Cc> \cc : vmap <Cc> \cc im visuellen Modus <Cc> eingeben, wird \cc (NERDCommenter-Befehl zum Kommentieren der Zeile). Da dies auf einem Plugin-Mapping beruht, können Sie :vnoremap hier nicht verwenden!

Lesen Sie hier weiter

Map Leader-Tastenkombination

Der Leiterschlüssel kann zum Erstellen eines Mappings mit einer Schlüsselbindung verwendet werden, die vom Endbenutzer überschrieben werden kann.

Der Leader ist standardmäßig der \ key. Um es zu überschreiben, muss der Endbenutzer :let g:mapleader='somekey(s)' ausführen :let g:mapleader='somekey(s)' bevor Sie das Mapping definieren.

In einem typischen Szenario wird der Mapleader in .vimrc , und Plugins verwenden <Leader> im Keybinding-Teil ihrer Zuordnungen, um sie anpassbar zu machen.

Im Plugin würden wir Zuordnungen definieren mit:

:nnoremap <Leader>a somecomplexaction

Dies würde die Somecomplexaction- Aktion der Tastenkombination \ + a zuordnen .

Die eine Aktion ohne Führer nicht ändert.

Es ist auch möglich, <Plug>Mappings zu verwenden, um mehr Spielraum für die Anpassung der Plugins-Keybindings zu lassen.

Abbildung des grundlegenden Mappings (praktische Abkürzungen).

In den meisten Texteditoren lautet die Standardverknüpfung zum Speichern des aktuellen Dokuments Strg + S (oder Cmd + S unter macOS).

Vim verfügt nicht standardmäßig über diese Funktion, dies kann jedoch zur Vereinfachung der Zuordnung zugeordnet werden. Die folgenden Zeilen werden in der .vimrc Datei .vimrc .

nnoremap <c-s> :w<CR>
inoremap <c-s> <c-o>:w<CR>

Der Befehl nnoremap ordnet Ctrl + s zu :w (aktuellen Inhalt in Datei schreiben) zu, während der inoremap Befehl den Befehl Strg + S zu :w ordnet und zum Einfügemodus zurückkehrt ( <co> für einen Befehl und in den normalen Modus kehrt anschließend in den Einfügemodus zurück, ohne die Cursorposition zu ändern, was andere Lösungen wie <esc>:w<cr>a nicht gewährleisten können).

Ähnlich,

" This is commented, as Ctrl+Z is used in terminal emulators to suspend the ongoing program/process.
" nnoremap <c-z> :u<CR>

" Thus, Ctrl+Z can be used in Insert mode
inoremap <c-z> <c-o>:u<CR>

" Enable Ctrl+C for copying selected text in Visual mode
vnoremap <c-c> <c-o>:y<CR>

PS: Es muss jedoch beachtet werden, dass Ctrl + S während der Verwendung von ssh (oder PuTTY) möglicherweise nicht wie erwartet funktioniert. Die Lösung dieses Problems ist nicht in den Anwendungsbereich dieses Dokuments, aber gefunden werden kann hier .



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