Я недавно читал о регистре черной дыры, "_
который является регистром только для записи.
Документация Vim описывает это так:
- Регистр черной дыры "_
При записи в этот регистр ничего не происходит. Это можно использовать для удаления текста, не затрагивая обычные регистры. При чтении из этого регистра ничего не возвращается.
Во всех статьях и книгах, которые я читал, авторы всегда используют один и тот же пример, который заключается в использовании этого регистра, когда нам нужно удалить какой-то текст, не стирая то, что мы ранее дернули.
Я понимаю это использование, но меня удивляет тот факт, что я не могу найти другие варианты использования этого регистра, что приводит меня к 2 вопросам:
Этот регистр полезен в некоторых других случаях использования ? Если да, то какие?
Если единственная цель этого регистра - использовать его в приведенном выше случае использования, почему создатели Vim решили решить эту проблему с помощью такого реестра ? Я имею в виду, что этот ответ показывает решение проблемы, которая предполагает меньше нажатий клавиш, чем при использовании
"_
. Использование"0
может также избежать использования регистра черной дыры, так почему они его создали?
источник
Помимо удаления текста, вы можете использовать регистр черной дыры для удаления других регистров. Пример:
Это один из способов очистки реестра
"a
.источник
:call setreg('a', [])
», как я и сделал: к сожалению, ответ - нет. Это действует как:call setreg('a', '')
(оставляя"a
в выводе:registers
команды."a
на выходе:registers
для непосвященных?Одно практическое использование в одной функции. В приведенной ниже функции комментарий к питону
#
добавляется и удаляется в зависимости от результатаgetline('.')[0]
. Если в строке есть комментарий, символ#
удаляется, но в этом случае мы не хотим, чтобы он связывался с регистром по умолчанию.источник