【问题标题】:Cross-platform Emacs Script跨平台 Emacs 脚本
【发布时间】:2010-02-19 15:20:16
【问题描述】:

我正在尝试编写一个必须操作剪贴板的 Emacs 脚本(只需获取最后一个条目并将其作为字符串进行操作)。问题是我在 Linux(在家)和 Windows(在工作)上工作。在 Windows 中,我必须使用函数 (w32-get-clipboard-data),而 Linux 出于相同目的使用 (x-get-clipboard)(当您使用其他操作系统的等效函数时,每个操作系统都会出错)。

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

PS。是的,一个合理的解决方案是“停止在工作中使用 Windows”,我正在努力解决这个问题,但我还需要忍受至少一两个月。

【问题讨论】:

    标签: windows linux emacs cross-platform


    【解决方案1】:

    您可以使用 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)))

    【讨论】:

      【解决方案2】:

      查看system-type 变量。

      【讨论】:

        猜你喜欢
        • 2016-01-03
        • 1970-01-01
        • 2011-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-21
        • 2014-01-18
        相关资源
        最近更新 更多