Связывание клавиш для изменения лица персонажа - PullRequest
0 голосов
/ 09 мая 2018

Мне любопытно, есть ли простой способ отредактировать лицо блока текста, используя функцию.

В частности, я работаю в основном режиме календаря, который я создал, и я хочу определить функцию, которая будет привязана к нажатию клавиши в этом основном режиме. Я хочу иметь возможность пометить группу текста, а затем изменить ее лицо с помощью этой привязки клавиш, чтобы пометить ее как «выполнено» и т. Д.

Я провел некоторое исследование и не смог найти именно эту проблему. Кроме того, я знаю, что в основном могу делать именно это в режиме org-mode, но я действительно хочу создать свой собственный режим, чтобы обеспечить большую гибкость с моей стороны.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Звучит как ad hoc, а не синтаксис, выделение: вы хотите вручную выбрать конкретный произвольный текст для выделения, и вы хотите выбрать лицо выделения, которое будет использоваться для того или иного выбранного фрагмента текста.

Вы можете использовать библиотеку Подсветка (highlight.el), чтобы сделать это.

Команда hlt-choose-default-face выбирает лицо, которое будет использоваться для последующего выделения (оно читает имя лица или имя цвета, с завершением).

Еще один способ выбрать подсвечивающее лицо - использовать команду hlt-next-face или hlt-previous-face. Эти циклы среди меньший набор граней и цветов фона, элементы в список значений опции hlt-auto-face-backgrounds. Вы можете использовать аргумент числового префикса с этими командами для выбора любого из элементы по абсолютной позиции в списке.

Существуют команды (например, hlt-highlight), чтобы выделить или отменить выделение активной области, или вы можете перетащить мышь, чтобы выделить (или отменить выделение). По умолчанию они используют последнее лицо по умолчанию, которое вы выбрали.

Для постоянного выделения см. Временное или постоянное выделение .

.
0 голосов
/ 09 мая 2018

Если вы используете 3-месячный мини-календарь в качестве основы для создания основного режима, то уже есть возможность сделать это. Чтобы увидеть, как это выглядит, введите M-x calendar, а затем M-x calendar-mark-holidays. Чтобы увидеть, как это работает, вы можете набрать M-x find-function RET calendar-mark-holidays RET и увидеть, что он использует функцию calendar-mark-visible-date - так что у вас есть, это ваша интересующая функция. У Дрю Адамса есть более интересная дата в календаре, которая имеет несколько дополнительных опций: https://www.emacswiki.org/emacs/calendar%2B.el. Эти маркировки являются наложениями и могут управляться с приоритетами, чтобы иметь одну замену другой, так что нет необходимости удалять цвет, если вы не хотите.

Вот краткий пример сочетания клавиш / функции, которая использует клавишу F5: (define-key calendar-mode-map [f5] (lambda () (interactive) (calendar-mark-visible-date (calendar-cursor-to-date 'signal-error) '(:background "yellow" :foreground "black"))))

...