我正在尝试编写一个必须操纵剪贴板的Emacs脚本(只需获取最后一个条目并将其作为字符串进行操作)。问题是我在Linux(在家里)和Windows(在工作中)工作。在Windows中,我必须使用函数(w32-get-clipboard-data),而Linux使用(x-get-clipboard)用于相同的目的(当你使用其他的等效函数时,每个操作系统都有助于错误输出)。
我真的不想保留两个具有相同模式定义的单独文件;有什么方法可以通过elisp检查当前正在运行的OS Emacs,所以我可以使用相应的功能吗?
PS。是的,一个合理的解决方案是“停止在工作中使用Windows”,我正在努力,但我还是需要忍受至少一两个月的事情。
答案 0 :(得分: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)))
答案 1 :(得分:3)
请参阅system-type
变量。