Ich habe kürzlich über das Black-Hole-Register gelesen, bei "_
dem es sich nur um ein Schreibregister handelt.
Die Vim-Dokumentation beschreibt dies folgendermaßen:
- Schwarzes Loch Register "_
Beim Schreiben in dieses Register passiert nichts. Dies kann verwendet werden, um Text zu löschen, ohne die normalen Register zu beeinflussen. Beim Lesen aus diesem Register wird nichts zurückgegeben.
In allen Artikeln und Büchern, die ich lese, verwenden die Autoren immer das gleiche Beispiel, in dem dieses Register verwendet wird, wenn wir Text löschen müssen, ohne das zu löschen, was wir zuvor gezerrt haben.
Ich verstehe diese Verwendung, bin aber überrascht, dass ich keine anderen Anwendungsfälle dieses Registers finden kann, was mich zu zwei Fragen führt:
Ist dieses Register in einigen anderen Anwendungsfällen nützlich ? Wenn ja, welche?
Wenn der einzige Zweck dieses Registers darin besteht, in dem von mir zuvor zitierten Anwendungsfall verwendet zu werden, warum haben die Entwickler von Vim beschlossen, dieses Problem mit einem solchen Register zu lösen ? Ich meine, diese Antwort zeigt eine Lösung für das Problem, die weniger Tastenanschläge als die Verwendung impliziert
"_
. Mit"0
können Sie auch die Verwendung des Black-Hole-Registers vermeiden. Warum wurde es erstellt?
quelle
Neben dem Löschen von Text können Sie mit dem Black-Hole-Register auch andere Register löschen. Beispiel:
Dies ist eine Möglichkeit zum Löschen des Registers
"a
.quelle
:call setreg('a', [])
ist", wie ich es getan habe: Leider lautet die Antwort nein. Es verhält sich wie:call setreg('a', '')
("a
in der Ausgabe des:registers
Befehls verlassen."a
in der Ausgabe von:registers
zu bleiben?Eine praktische Anwendung in einer Funktion. In der folgenden Funktion wird der Python-Kommentar
#
abhängig vom Ergebnis von hinzugefügt und entferntgetline('.')[0]
. Wenn die Zeile einen Kommentar enthält, wird das Zeichen#
gelöscht, aber in diesem Fall soll es nicht mit unserem Standardregister in Konflikt geraten.quelle