Этот кусок кода реализует основные функции джуйкоплагина от @mad, которые адаптированы для микроблога psto.net юзером @nextus. То, что получилось, адаптировано для point.im юзером @rayslava, в итоге выброшено на мороз юзером @a13 и перепилено с нуля.
Этот плагин добавляет следующие возможности:
- цветные #id/@username/*теги;
- кликабельные #id/@username/*теги:
- Если нажать
RET
на #id/@username/*теге, то оно будет вставлено в буфер ввода;
- Если нажать
Загрузите последнюю версию:
git clone git://github.com/rayslava/emacs-point-el.git
Добавьте следующие строки в ваш инициализационный файл:
(add-to-list 'load-path "path/to/emacs-point-el/")
(require 'point-im)
(point-im-mode t)
Если используются пакеты use-package, quelpa и quelpa-use-package, можно сделать так:
(use-package point-im
:ensure nil
:quelpa
(point-im :repo "rayslava/emacs-point-el" :fetcher github :version original)
:config
(setq point-im-reply-id-add-plus nil)
(add-hook 'jabber-chat-mode-hook #'point-im-mode))
-
Для перемещения по сообщениям можно использовать
M-p
,M-n
; -
Для последовательной вставки в поле редактирования #id сообщений
M-RET
;
Интеграция с avy
Все функции для быстрого перехода будучи вызванными с префиксным аргументом активируют найденную сущность. Без - вставляют в поле редактирования.
M-g i
быстрый переход на #idM-g u
быстрый переход на @имя_пользователяM-g t
быстрый переход на *тегM-g p
ищет по всем выбранным сущностям + ссылкам (последние без префиксного аргумента вместо вставки открываются в браузере).
-
s
/u
- подписаться/отписаться на/от пользователя или пост под курсором. -
g
/Левая кнопка мыши
- открыть пост или страницу юзера в веб-интерфейсе. -
d
- удалить -
!
- рекомендовать -
w
- в белый список -
b
- в чёрный список -
+
- последние сообщения #id(NB: с комментариями в данный момент работает некорректно!)/@username/*тега -
n
/p
- следующий/предыдущий #id -
N
/P
(cShift
-ом) - следующий/предыдущий @username -
c
- копировать #id/@username/*тег или, если вызвано с префиксным аргументом, соответствующий url. -
C-c C-p
/Правая кнопка мыши
- контекстное меню для #id/@username/*тегов
После того как вы ответили на сообщение т.е. нажали RET
на #id, можно нажать
C-u C-SPACE
(стандартное сочетание емакса для навигации по локальным меткам) и
переместиться на позицию где вы были (удобно когда приходит много сообщений и
по мере чтения отвечать на них)
-
C-c C-e
- Открывает отдельный буфер для редактирования поста или ответа(если курсор находился на #id). Если установлен markdown-mode будет активирован соответствующий режим, иначе встроенный text-mode. -
C-c C-c
- отправка из буфера редактирования.
Это дополнение тестировалось на jabber-el 0.8.92. В текстовом интерфейсе работает.
ВНИМАНИЕ
C jabber-el 0.7.1 и ниже плагин не работает!
- Тысячи их (несмотря на размер плагина)
Собственно @mad'у и @nextus'у за плагин. @4DA за функцию ответа на комментарий, @rayslava.
Просьба о багах/фичах/etc писать сюда #oojslq. В самом #oojslq сплошная ложь — мержреквест прислан и принят.