我正在尝试编写一个必须操作剪贴板的 Emacs 脚本(只需获取最后一个条目并将其作为字符串进行操作)。问题是我在 Linux(在家)和 Windows(在工作)上工作。在 Windows 中,我必须使用函数 (w32-get-clipboard-data),而 Linux 使用 (x-get-clipboard) 用于相同的目的(当您使用其他操作系统的等效函数时,每个操作系统都会出错)。
我真的不想保留两个具有相同模式定义的独立文件;有什么方法可以通过 elisp 检查 Emacs 当前正在运行哪个操作系统,以便我可以使用适当的功能?
附言。是的,一个合理的解决方案是“停止在工作中使用 Windows”,我正在努力解决这个问题,但我至少需要忍受一两个月。
最佳答案
您可以使用 fboundp 检查函数是否绑定(bind)(如果存在)。然后,如果您想变得非常聪明,您可以创建自己的别名来指向正确的别名。例如:
(defalias 'my-get-clipboard-data (cond ((fboundp 'w32-get-clipboard-data) 'w32-get-clipboard-data) ((fboundp 'x-get-clipboard) 'x-get-clipboard) (t nil)))
关于windows - 跨平台 Emacs 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2293990/