web-dev-qa-db-de.com

Was bedeutet ein <CR> am Ende einiger Vim-Mappings?

Aha <cr>s viel in vim Mappings, aber was macht es?

50
Lucia
:help key-notation

sagt:

notation    meaning            equivalent  decimal    value(s)
-----------------------------------------------------------------------
<CR>        carriage return        CTRL-M    13       *carriage-return*
<Return>    same as <CR>                              *<Return>*
<Enter>     same as <CR>                              *<Enter>*

Zuordnungen enthalten häufig Ex-Befehle, und Sie müssen <CR> Drücken, um sie auszuführen, damit sie in die Zuordnung aufgenommen werden.

54
romainl

Warum <special keys>?

Während Sie Literalschlüssel in Zuordnungsdefinitionen verwenden können (die Eingabetaste wird je nach den Einstellungen als ^M oder auch nur als zusätzliche neue Zeile angezeigt), bietet Vim eine spezielle Tastennotation für Schlüssel (Kombinationen). , so dass es einfacher ist zu definieren (Sie müssen i_CTRL-V nicht verwenden, um das Sonderzeichen buchstäblich einzufügen) und zu verstehen (<A-a> drückt die Absicht besser aus als das entsprechende á) die Zuordnungen.

Eine Liste und Erklärung finden Sie unter :help key-notation.

Warum <CR>?

Da viele Zuordnungen Ex-Befehle aufrufen (z. B. :w) und daher vom Modus normal in den Modus Befehlszeile wechseln müssen, müssen sie den Befehl mit abschließen <Enter> (oder <CR>), genau wie beim manuellen Eingeben des Befehls.

7
Ingo Karkat

Das <CR> in vim Mappings ist das Wagenrücklauf normalerweise das Enter auf Ihrer Tastatur.

3
Atropo

<CR> in einem Mapping entspricht dem Enter Schlüssel genau wie a in einem Mapping entspricht dem A Schlüssel. Ley sagt, Sie haben diese Zuordnung

:map <f8> :wq<cr>

Dies wird abgebildet F8 zur Tastenfolge :WQEnter (Dies würde den aktuellen Puffer speichern und beenden).

2
steffen

Es ist im Grunde ein Mittel zu sagen "das ist das Ziel", siehe Karte :

Wenn Sie eine Zuordnung haben, die einen Ex -Befehl enthält, müssen Sie einen Zeilenabschluss nach dem Befehl einfügen, damit er ausgeführt wird. Die Verwendung von wird hierfür empfohlen. Beispiel:

:map _ls :!ls -l %<CR>:echo "the end"<CR>

ebenfalls,

<CR>    [count] lines downward, on the first non-blank character |linewise|.
0
Lucia