Сделайте глобальный второстепенный режим буфером локальным - PullRequest
0 голосов
/ 29 мая 2020

Другой пакет Elisp определяет второстепенный режим как глобальный. Другими словами, пакет определяет второстепенный режим с помощью:

(define-minor-mode some-minor-mode
  ;; ... other stuff ...
  :global t)

Я хотел бы сделать его локальным для буфера, чтобы при его активации он применялся только к буферу, в котором он активирован. Как мне это сделать?

1 Ответ

1 голос
/ 29 мая 2020

Вы не можете. Или, по крайней мере, вы не можете в общем c способе.

Когда второстепенный режим определен как глобальный, logi c режима, несомненно, сделает то же самое предположение, и нет generi c изменение, которое вы могли бы сделать, в результате чего любой произвольный глобальный второстепенный режим имел бы только локальные для буфера эффекты.

Кроме того, для некоторых глобальных режимов локальный для буфера вариант не мог бы даже имеет смысл , например, режимы, которые влияют на конфигурацию окна или параметры фрейма.

Глобальные режимы должны обрабатываться в каждом конкретном случае, учитывая их конкретную c реализацию подробности. В зависимости от кода, о котором идет речь, вы можете достичь своей цели в каком-то конкретном режиме; но тот же подход не будет гарантированно работать для всех глобальных режимов. затем определение глобального режима, который включает или отключает локальный буферный режим в массовом порядке во всех применимых буферах. Однако вы не можете go в другом направлении - если у вас уже нет локального режима буфера, тогда вам придется сначала написать это.

...