我想从 MS Office 应用程序中调用对我的(打开的)Emacs 应用程序有直接影响的命令,例如
- 在 Emacs 中搜索当前选定的文本
我想知道我该怎么做。有没有直接的方法向 Emacs 发送命令?我在 Windows 7 上运行 Emacs 24.3.1,并使用服务器选项
;;prevent error message of unsafe server (see http://stackoverflow.com/a/1313577/772434 )
(require 'server)
(and (>= emacs-major-version 23) (defun server-ensure-safe-dir (dir) "Noop" t))
(server-start)
;;(add-to-list 'load-path "~/path/to/org/protocol/")
(require 'org-protocol)
我正在使用组织协议
答案1
您可以使用 向 Emacs(以服务器模式运行)发送命令emacsclient
。
例如 :
emacsclient --eval "(org-search-view nil """pattern""")"
如果 elisp 变得太复杂,你最好将其包装在可以加载的文件中。例如:
趣味
(defun my/search (pattern)
(with-current-buffer "BUFFER-NAME"
(search-forward pattern)))
命令行
emacsclient --load fun.el --eval '(my/search "PATTERN")'