Niedawno przeczytałem o rejestrze czarnej dziury, "_
który jest rejestrem tylko do zapisu.
Dokumentacja Vima opisuje to w następujący sposób:
- Rejestr czarnej dziury "_
Podczas pisania do tego rejestru nic się nie dzieje. Można tego użyć do usunięcia tekstu bez wpływu na normalne rejestry. Podczas odczytu z tego rejestru nic nie jest zwracane.
We wszystkich artykułach i książkach, które czytam, autorzy zawsze używają tego samego przykładu, którym jest użycie tego rejestru, gdy musimy usunąć jakiś tekst bez usuwania tego, co wcześniej szarpaliśmy.
Rozumiem to zastosowanie, ale jestem zaskoczony faktem, że nie mogę znaleźć innych przypadków użycia tego rejestru, co prowadzi do dwóch pytań:
Czy ten rejestr jest przydatny w niektórych innych przypadkach użycia ? Jeśli tak, które?
Jeśli jedynym celem tego rejestru jest wykorzystanie cytowanego wcześniej przypadku użycia, dlaczego twórcy Vima postanowili rozwiązać ten problem za pomocą takiego rejestru ? Mam na myśli, że ta odpowiedź pokazuje rozwiązanie problemu, który pociąga za sobą mniejszą liczbę naciśnięć klawiszy niż używanie
"_
. Używanie"0
może również uniknąć użycia rejestru czarnej dziury, więc dlaczego go stworzyli?
źródło
Oprócz usuwania tekstu, możesz użyć rejestru czarnej dziury, aby usunąć inne rejestry. Przykład:
Jest to jeden ze sposobów kasowania rejestru
"a
.źródło
:call setreg('a', [])
”, tak jak ja: niestety odpowiedź brzmi „nie”. Działa jak:call setreg('a', '')
(pozostawiając"a
w wyniku:registers
polecenia."a
w dorobku:registers
dla niewtajemniczonych?Jedno praktyczne zastosowanie w jednej funkcji. W funkcji poniżej komentarz Pythona
#
jest dodawany i usuwany w zależności od wynikugetline('.')[0]
. Jeśli wiersz ma komentarz, znak#
jest usuwany, ale w tym przypadku nie chcemy, aby zadziałał z naszym domyślnym rejestrem.źródło