Как запустить команду сразу после визуализации кадра emacs?

StackOverflow https://stackoverflow.com/questions/875667

  •  22-08-2019
  •  | 
  •  

Вопрос

Я пытаюсь понять, как использовать браузер кода Emacs (ECB), и одна из вещей, которую вы можете с его помощью сделать, - это установить ширину ecb-windows-width, чтобы определить ширину окон ecb.Проблема в такой последовательности:

  1. На экране появляется рамка.
  2. Вызывается ecb-activate, масштабируемый в соответствии с шириной ecb-windows.
  3. Параметры default-frame-alist вступают в силу, размер кадра изменяется.

Проблема в том, что из-за этого порядка ширина окна ecb устанавливается до изменения размера фрейма, а затем не масштабируется.

Итак, я хотел бы запустить ecb-redraw-layout (или в идеале просто ecb-activate), но это должно произойти после пункта 3.В противном случае также будет работать какая-то опция ecb-dynamic-width-scale.

Как бы то ни было, ecb-auto-activate не работает, поэтому я не могу узнать, решит ли это проблему.

Это было полезно?

Решение

Похоже, я нашел обходной путь.

  1. Установите для ecb-fix-windowsize значение true.
  2. Когда фрейм загружается, вызывается ecb-activate и окна ecb масштабируются пропорционально размеру фрейма.
  3. Затем запускается default-frame-alist, и размер кадра изменяется, но окна ecb имеют фиксированный размер и не масштабируются.

Довольно хакерски, потому что вы устанавливаете ширину в соответствии с размером кадра по умолчанию, который появляется первым, а не с размером, который вы фактически используете.Но да ладно.

Другие советы

Я не знаком с ЕЦБ, но after-make-frame-functions может быть полезно для запуска нужных вам функций (или запуска какой-либо функции-перехватчика, где вы хотите выполнять особые действия с фреймом ecb).

after-make-frame-functions это список функций, которые принимают один аргумент (вновь созданный кадр) и запускается после создания кадра.Это не относится к начальному фрейму emacs (при запуске), поскольку ваш .emacs читается после рамка уже создана.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top