J'ai récemment lu sur le registre du trou noir "_
qui est un registre en écriture seule.
La documentation Vim le décrit de cette façon:
- Registre des trous noirs "_
Lors de l'écriture dans ce registre, rien ne se passe. Cela peut être utilisé pour supprimer du texte sans affecter les registres normaux. Lors de la lecture de ce registre, rien n'est retourné.
Dans tous les articles et livres que j'ai lus, les auteurs utilisent toujours le même exemple qui consiste à utiliser ce registre lorsque nous devons supprimer du texte sans effacer ce que nous avions précédemment tiré.
Je comprends cette utilisation mais je suis surpris par le fait que je ne trouve pas d'autres cas d'utilisation de ce registre, ce qui m'amène à 2 questions:
Ce registre est-il utile dans certains autres cas d'utilisation ? Si oui, lesquels?
Si le seul but de ce registre est d'être utilisé dans le cas d'utilisation que j'ai cité précédemment, pourquoi les créateurs de Vim ont-ils décidé de résoudre ce problème avec un tel registre ? Je veux dire que cette réponse montre une solution au problème qui implique moins de frappes que d'utiliser
"_
. L'utilisation"0
peut également éviter l'utilisation du registre des trous noirs, alors pourquoi l'ont-ils créé?
la source
Outre la suppression de texte, vous pouvez utiliser le registre de trou noir pour supprimer d'autres registres. Exemple:
C'est une façon d'effacer le registre
"a
.la source
:call setreg('a', [])
", comme je l'ai fait: malheureusement, la réponse est non. Il agit comme:call setreg('a', '')
(laissant"a
dans la sortie de la:registers
commande."a
dans la sortie de:registers
pour les non-initiés?Une utilisation pratique dans une fonction. Dans la fonction ci-dessous, le commentaire python
#
est ajouté et supprimé en fonction du résultat degetline('.')[0]
. Si la ligne a un commentaire, le caractère#
est supprimé, mais dans ce cas, nous ne voulons pas qu'il perturbe notre registre par défaut.la source