https://http-shortcuts.rmy.ch/ 这个安卓软件可以发送 HTTP 请求,利用它可以从手机分享文字到 Emacs,图片应该也行,但以前用过 web-server.el
发现它太慢了,图片几个 MB 也不行。
前提条件:手机要能访问 Emacs 服务器,比如一个局域网下,或者使用隧道把 Emacs 暴露在公网下。
设置方法:
- M-x send-to-emacs-start 启动服务器
- HTTP Shortcuts 配置
http://your-ip:8080/?message={message}
,大括号里是变量,定义成文字输入,可分享
使用的话:选中文字,点分享,一切正常的话,Emacs 就会插入文字。
(require 'web-server)
(defun send-to-emacs-handler (req)
(pcase-let (((eieio process headers body) req))
;; (message "[DEBUG] HEADERS: %S" headers)
;; (message "[DEBUG] BODY: %S" body)
(let ((code 200)
(body "OK"))
(if-let ((message (assoc-default "message" headers)))
(insert
(decode-coding-string message 'utf-8))
(setq code 400
body "Missing message argument"))
(ws-response-header
process code
(cons "Content-Type" "text/plain; charset=utf-8")
(cons "Content-Length" (string-bytes body)))
(ws-send process body))))
(defvar send-to-emacs-server nil)
(defun send-to-emacs-stop ()
(interactive)
(when send-to-emacs-server
(message "Close old server")
(ws-stop send-to-emacs-server)
(setq send-to-emacs-server nil)))
(defun send-to-emacs-start ()
(interactive)
(send-to-emacs-stop)
(message "Start server")
(setq send-to-emacs-server
(ws-start #'send-to-emacs-handler 8080
nil :host "0.0.0.0")))