Qu'est-ce que le <leader> dans un fichier .vimrc?

1071

Je vois <leader>dans de nombreux .vimrcfichiers, et je me demande ce que cela signifie?

A quoi cela sert?

Un simple aperçu général de l'objectif et de l'utilisation serait formidable.

Bob Martens
la source
10
J'en viens à réaliser que je pense que la compréhension clé est qu'en utilisant <leader>dans vos raccourcis clavier, vous créez effectivement un espace de noms afin que vos raccourcis personnalisés n'empiètent pas sur le comportement vim intégré. Voir la réponse de @Pete Schlette ci-dessous pour en savoir plus.
Utilisateur
3
Si vous souhaitez vérifier votre <leader>identité, utilisez :echo mapleaderou :let mapleader. S'il n'est pas défini, il utilisera la valeur par défaut, qui est une barre oblique inverse"\"
wisbucky

Réponses:

985

La <Leader>clé est mappée \par défaut. Donc, si vous avez une carte de <Leader>t, vous pouvez l'exécuter par défaut avec \+ t. Pour plus de détails ou la réaffecter à l'aide de la mapleadervariable, voir

: aide leader

Pour définir un mappage qui utilise la variable "mapleader", la chaîne spéciale
"<Leader>" peut être utilisé. Il est remplacé par la valeur de chaîne "mapleader".
Si "mapleader" n'est pas défini ou vide, une barre oblique inverse est utilisée à la place.  
Exemple:
    : map <Leader> Une autre ligne <Esc>
Fonctionne comme:
    : map \ Une autre ligne <Esc>
Mais après:
    : laissez mapleader = ","
Cela fonctionne comme:
    : carte, Une autre ligne <Esc>

Notez que la valeur de "mapleader" est utilisée au moment où le mappage est
défini. Changer "mapleader" après cela n'a aucun effet pour déjà défini
mappages.


Vereb
la source
48
Le changement ,est bon. Beaucoup plus facile à atteindre que \\ , et qui utilise ,quand même dans vim?
Gabe Moothart
41
@Gabe Moothart. : h, vous donne "Répéter les derniers f, t, F ou T dans le sens opposé [count] fois". C'est assez pratique.
Maxim Kim
10
Il y a aussi un bon résumé ici: stevelosh.com/blog/2010/09/coming-home-to-vim/#using-the-leader
Sukotto
66
J'aime l'espace (' ')comme touche de leader car je peux le frapper avec l'une ou l'autre main, ce qui rend la touche de suivi (qu'elle soit sur le côté gauche ou droit du clavier) aussi rapide à déclencher par la suite. Le fait d'avoir une touche de repère qui n'est elle-même que d'un côté du clavier rend les touches de suivi du même côté du clavier un peu plus encombrantes. Nitpicky, je sais. :)
jefflunt
3
@jefflunt Mon pouce droit est déjà une semaine car je ne l'ai jamais utilisé pour taper. Je n'utilise donc que le pouce gauche pour frapper les espaces. Cette clé de leader spatial ne me procure pas le même avantage, je suppose.
off99555
263

Sachez que lorsque vous appuyez sur votre <leader>touche, vous n'avez que 1000 ms (par défaut) pour entrer la commande qui la suit.

Ceci est exacerbé car il n'y a pas de retour visuel (par défaut) que vous avez appuyé sur votre <leader>touche et vim attend la commande; et donc il n'y a pas non plus de moyen visuel de savoir quand ce temps mort s'est produit.

Si vous ajoutez set showcmdà votre, vimrcvous verrez votre <leader>clé apparaître dans le coin inférieur droit de vim (à gauche de l'emplacement du curseur) et peut-être plus important encore, vous la verrez disparaître lorsque le temps mort arrivera.

La durée du délai peut également être définie dans votre vimrc, voir :help timeoutlenpour plus d'informations.

davetapley
la source
11
«: Set showcmd» affiche la commande en cours d'où la touche de repère l'heure à laquelle elle est active.
Greg
4
Au manque de feedback, alors que par défaut il n'y a pas de feedback visuel, il semble que vim sonnera une cloche du système s'il ne reçoit pas de commande dans les 1000ms après avoir appuyé sur <leader>.
Bailey Parker
113

La «touche leader» est un moyen d'étendre la puissance des raccourcis de VIM en utilisant des séquences de touches pour exécuter une commande. La clé de repère par défaut est la barre oblique inverse. Par conséquent, si vous avez une carte de <Leader> Q, vous pouvez effectuer cette action en tapant \ Q.

Mikeage
la source
4
\Qà la fois? ou premier ` release it and then Q`
Arnold Roa
9
@ArnoldRoa Chaque fois que les commandes vim sont répertoriées, la syntaxe ggdGsignifie d'appuyer sur ces quatre touches de manière séquentielle. Une syntaxe comme un <C-w><C-j>moyen d'appuyer sur CTRL + w, suivi de CTRL + j.
gobernador
91

La <leader>clé de Vim est un moyen de créer un espace de noms pour les commandes que vous souhaitez définir. Vim mappe déjà la plupart des touches et combinaisons de Ctrl+ (certaines touches), c'est donc <leader>(some key)là que vous (ou les plugins) pouvez ajouter un comportement personnalisé.

Par exemple, si vous vous retrouvez fréquemment à supprimer exactement 3 mots et 7 caractères, il peut être pratique de mapper une commande via de nmap <leader>d 3dw7xsorte qu'en appuyant sur la touche de repère suivie de d supprimera 3 mots et 7 caractères. Parce qu'il utilise la clé leader comme préfixe, vous pouvez être (relativement) assuré que vous ne piétinez aucun comportement préexistant.

La clé par défaut de <leader>est \, mais vous pouvez utiliser la commande :let mapleader = ","pour la réaffecter à une autre clé ( ,dans ce cas).

La page Usevim sur la clé de leader contient plus d'informations.

Pete Schlette
la source
le lien fourni 404s.
evanb
8

Dans mon système, c'est la \clé. il est utilisé pour les commandes afin que vous puissiez le combiner avec d'autres caractères.

Arkaitz Jimenez
la source