Каковы преимущества использования косвенных буферов ? При каких обстоятельствах они полезны?
источник
Каковы преимущества использования косвенных буферов ? При каких обстоятельствах они полезны?
Чтобы увидеть и редактировать несколько мест в одном буфере. Таким образом, вам не нужно прокручивать длинный буфер, а просто переключать окно в видимую область. Каждый клонированный буфер также имеет различные метки кольца, сужения и другие свойства буфера. Если вы не используете косвенный буфер, а создаете другое окно с тем же буфером, то все совместно используется, и вы не можете выполнять другие дополнительные функции, кроме просмотра и редактирования разных мест. Например, с помощью косвенного буфера вы можете сложить весь блок кода, эффективно создав «дерево тегов», не затрагивая исходный буфер. Используя окно, оба буфера в обоих окнах складываются, потому что оба буфера одинаковы.
В общем, косвенный буфер - это совершенно другой буфер, в котором используется один и тот же текст и файл в исходном буфере, поэтому при сохранении клонированного буфера сохраняется и исходный файл.
Один вариант использования - использование другого основного режима в одной части файла.
Например, когда-то я работал с XML-документами с кодом внутри определенных элементов. Я хотел иметь возможность редактировать весь документ так, как если бы он был в формате xml, но при этом все основные функции режима для языка программирования были встроены в определенные элементы, поэтому я сузил тело этих элементов в косвенном буфере, в котором выполнялся соответствующий основной режим.
Вот функция из моего конфига, которую я использую для этого:
Примечание: это не идеально, такие вещи, как font-lock, требуют особой дополнительной работы для использования в этом сценарии.
источник
Косвенные буферы дают вам несколько просмотров одного и того же буфера, в частности, несколько сужений, каждое из которых во многих отношениях действует как отдельный буфер.
Как
narrow-indirect.el
сказано в комментарии к библиотеке :источник