web-dev-qa-db-fra.com

Quelle est la signification d'un <CR> à la fin de certains mappages vim?

Je vois <cr>s beaucoup dans les mappages vim, mais que fait-il?

36
Lucia
:help key-notation

dit:

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

Les mappages impliquent souvent des commandes Ex et vous devez appuyer sur <CR> pour les exécuter afin qu'il soit inclus dans le mappage.

54
romainl

Pourquoi <special keys>?

Bien que vous puissiez utiliser des clés littérales dans les définitions de mappage (la touche Entrée apparaîtra comme ^M, ou même simplement comme une nouvelle ligne supplémentaire, selon les paramètres), Vim fournit une notation de clé spéciale pour les touches (combinaisons), de sorte qu'il est plus facile à définir (vous n'avez pas besoin d'utiliser i_CTRL-V pour insérer littéralement le caractère spécial) et comprendre (<A-a> exprime mieux l'intention que l'équivalent á) les mappages.

Voir :help key-notation pour une liste et une explication.

Pourquoi <CR>?

Autant de mappages invoquent des commandes Ex (par exemple :w) et doivent donc passer du mode normal au mode ligne de commande, ils doivent conclure la commande avec <Enter> (ou <CR>), comme vous le feriez lors de la saisie manuelle de la commande.

7
Ingo Karkat

Le <CR> dans vim les correspondances est le retour chariot généralement le Enter sur votre clavier.

3
Atropo

<CR> dans un mappage correspond à la Enter comme a dans un mappage correspond à la clé A clé. Ley dit que vous avez cette cartographie

:map <f8> :wq<cr>

Cela cartographiera F8 à la séquence de touches :WQEnter (ce qui sauverait le tampon actuel et quitterait).

2
steffen

C'est fondamentalement un moyen de dire "c'est la fin", voir map :

Lorsque vous avez un mappage qui contient une commande Ex , vous devez placer un terminateur de ligne après pour l'exécuter. L'utilisation de est recommandée pour cela. Exemple:

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

aussi,

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