Quelle est la différence entre le reconfigurer, noremap, nnoremap et vnoremap cartographie des commandes de Vim?
Quelle est la différence entre le reconfigurer, noremap, nnoremap et vnoremap cartographie des commandes de Vim?
Vous devez vous connecter pour publier un commentaire.
remap
est un option qui rend les mappages de travail de manière récursive. Par défaut il est sur et je vous recommande de le laisser comme ça. Le reste sont des cartographie des commandes, décrit ci-dessous::map
et:noremap
sont récursive et non-récursive versions de différentes commandes de mappage. Ce que cela signifie est que si vous n':j
sera mappé àgg
.Q
sera aussi être mappé àgg
, parce quej
sera étendu pour le récursive de la cartographie.W
sera mappé àj
(et de ne pasgg
) parce quej
ne sera pas augmenté pour les non-récursive de la cartographie.Maintenant, rappelez-vous que Vim est un modale de l'éditeur. Il a un normal mode, visual mode et d'autres modes de transport.
Pour chacun de ces ensembles de correspondances, il y a un la cartographie qui fonctionne dans des conditions normales, visuel, sélectionnez et opérateur modes (
:map
et:noremap
), qui fonctionne en mode normal (:nmap
et:nnoremap
), l'un en mode visuel (:vmap
et:vnoremap
) et ainsi de suite.Pour plus de renseignements sur cette question, voir:
noremap
pour être certains à l'opposé demap
. Je veux dire quelque chose qui supprime une cartographie. Merci pour la réponse. Il a précisé menore
stand pour[no] [re]map
?:map
, etc. ne pas travailler dans tous modes, exactement, juste toutes les communes (en particulier, le mode normal, le mode visuel, le mode de sélection, et l'opérateur, en attente de mode). Si vous voulez une cartographie de travail en insertion, en ligne de commande, ou lang-arg mode, vous devez utiliser:map!
, etc. (Source: vimdoc.sourceforge.net/htmldoc/map.html#map-overview)noremap j gg
et puismap Q j
est appuyez sur Q pour aller à l'appel de gg ? Je comprends le contraire ne serait pas.:help recursive_mapping
Je pense que la documentation de Vim devraient ai expliqué la signification derrière le nommage de ces commandes. Juste vous dire ce qu'ils font ne vous aide pas à se rappeler les noms.
map
est la "racine" de tous les récursive de la cartographie des commandes. La racine s'applique à la "normale", "visual+select" et "opérateur en attente de" modes. (Je suis en utilisant le terme "racine" comme dans la linguistique.)noremap
est la "racine" de tous les non-récursive de la cartographie des commandes. La forme de base s'applique pour les mêmes modes quemap
. (Pensez à lanore
préfixe qui signifie "non-récursif".)(Noter qu'il existe également le
!
modes commemap!
qui s'appliquent à insérer & de la ligne de commande.)Voir ci-dessous pour quoi "récursive" signifie dans ce contexte.
Ajoutant un mode lettre comme
n
modifier les modes de la cartographie des œuvres. Il peut choisir un sous-ensemble de la liste des modes de fonctionnement (par exemple uniquement les "visuels"), ou de choisir d'autres modes demap
ne s'applique pas (par exemple, "insert").Utilisation
help map-modes
vais vous montrer quelques tables qui expliquent comment contrôler les modes de la cartographie s'applique.Mode de lettres:
n
: normale seulementv
: visuel et sélectionnezo
: opérateur en attente dex
: visual seulements
: sélectionner seulementi
: insérerc
: ligne de commandel
: insertion, de la ligne de commande, regexp-la recherche (et des autres. Collectivement appelés "Lang-Arg" pseudo-mode)"Récursive" signifie que la cartographie est élargi à un résultat, alors le résultat est étendu à un autre résultat, et ainsi de suite.
L'expansion s'arrête lorsque l'un de ces est vrai:
À ce point, Vim par défaut du "sens" de la le résultat final est appliquée/exécuté.
"Non-récursive" signifie que la cartographie n'est élargi une fois, et le résultat est appliquée/exécuté.
Exemple:
Les causes ci-dessus
K
de l'étendre à d'H
, puisH
de l'étendre à d'G
et de s'arrêter. Il s'arrête à cause de lannoremap
, qui s'étend et s'arrête immédiatement. Le sens deG
sera exécuté (c'est à dire "aller à la dernière ligne"). Tout au plus un non-récursive de la cartographie sera jamais appliquée dans une expansion de la chaîne (il serait de la dernière extension d'arriver).La cartographie de
G
àgg
s'applique uniquement si vous appuyez surG
, mais pas si vous appuyez surK
. Cette cartographie n'affecte pas en appuyant surK
indépendamment de siG
a été cartographié de manière récursive ou non, puisque c'est la ligne 2 qui provoque l'expansion deK
pour arrêter, de sorte que la ligne 3 ne sont pas utilisés.map
ne s'applique qu'à la normale, visuels, de la sélection, et l'opérateur, en attente de modes, de ne pas tous les modes.Attention,
vnoremap
etvmap
Visuelle ET Sélectionnez le mode.Pour avoir une cartographie uniquement en mode Visuel, l'utilisation
xmap
etxnoremap
.Une différence, c'est que:
:map
nenvo
== normal + (visuel + select) opérateur + dans l'attente de:map!
neic
== insert + mode ligne de commandecomme indiqué sur
help map-modes
tables.Donc:
map
n'a pas la carte de tous les modes.À la carte pour tous les modes, vous avez besoin d'
:map
et:map!
.command mode
est un autre nom historique pournormal mode
viz. chapit 5 vimdoc.sourceforge.net/htmldoc/intro.html#vim-modes-intro). L'abréviation "c' est pour la 'ligne de commande'. En d'autres termes, par défaut:map! lhs rhs
de manière récursive cartes lhs de rhs pour insert + LIGNE de commande modes. C'est moins que laremap
option par défaut est explicitement désactivé avecset noremap[!]
dans ~/.vimrc. Dans ce cas, la cartographie ne serait pas récursive (pas conseillé).