跨平台的Emacs脚本

Ina*_*thi 1 linux windows emacs cross-platform

我正在尝试编写一个必须操纵剪贴板的Emacs脚本(只需获取最后一个条目并将其作为字符串进行操作).问题是我在Linux(在家里)和Windows(在工作中)工作.在Windows中,我必须使用的函数(W32-获取剪贴板数据),而Linux使用(X-获取剪贴板)为同样的目的(每个OS有益的错误了,当你使用其他人的同等功能).

我真的不想保留两个具有相同模式定义的单独文件; 有没有办法通过elisp检查当前正在运行的OS Emacs,所以我可以使用相应的功能?

PS.是的,一个合理的解决方案是"停止在工作中使用Windows",我正在努力,但我还是需要忍受至少一两个月的事情.

Eri*_*ven 5

您可以使用fboundp检查函数是否绑定(如果存在).然后,如果你想变得非常聪明,你可以创建自己的别名,指向正确的别名.例如:

(defalias 'my-get-clipboard-data                                                                                                                                                                                                   
  (cond ((fboundp 'w32-get-clipboard-data) 'w32-get-clipboard-data)                                                                                                                                                                
        ((fboundp 'x-get-clipboard) 'x-get-clipboard)                                                                                                                                                                              
        (t nil)))
Run Code Online (Sandbox Code Playgroud)