Hace poco leí sobre el registro de agujeros negros, "_
que es un registro de solo escritura.
La documentación de Vim lo describe de esta manera:
- Registro de agujero negro "_
Al escribir en este registro, no pasa nada. Esto se puede usar para eliminar texto sin afectar los registros normales. Al leer desde este registro, no se devuelve nada.
En todos los artículos y libros que leo, los autores siempre usan el mismo ejemplo, que es usar este registro cuando necesitamos eliminar algo de texto sin borrar lo que hemos eliminado previamente.
Entiendo este uso, pero me sorprende el hecho de que no puedo encontrar otros casos de uso de este registro, lo que me lleva a 2 preguntas:
¿Es útil este registro en otros casos de uso ? En caso afirmativo, ¿cuáles?
Si el único propósito de este registro es utilizarlo en el caso de uso que cité antes, ¿por qué los creadores de Vim decidieron resolver este problema con dicho registro ? Quiero decir que esta respuesta muestra una solución al problema que implica menos pulsaciones de teclas que el uso
"_
. El uso"0
también puede evitar el uso del registro de agujeros negros, ¿por qué lo crearon?
fuente
Además de eliminar texto, puede usar el registro de agujeros negros para eliminar otros registros. Ejemplo:
Esta es una forma de borrar el registro
"a
.fuente
:call setreg('a', [])
", como lo hice yo: lamentablemente, la respuesta es no. Actúa como:call setreg('a', '')
(dejando"a
en la salida del:registers
comando."a
en la salida de:registers
los no iniciados?Un uso práctico en una función. En la función de abajo
#
se agrega y elimina el comentario de Python según el resultado degetline('.')[0]
. Si la línea tiene un comentario, el carácter#
se elimina, pero en este caso no queremos que se enrede con nuestro registro predeterminado.fuente