windows - 跨平台 Emacs 脚本

标签 windows linux emacs cross-platform

我正在尝试编写一个必须操作剪贴板的 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/

相关文章:

c++ - 在 NONCLIENTMETRICS 中,状态字体、消息字体和标题字体之间有什么区别?

c++ - 仅当从我的程序打开 CMD 时出现奇怪的 CMD 错误

linux - 如何使用linux命令反转文本文件中的每个单词而不改变单词的顺序

linux - 使用管道在 awk 语句中输入

Emacs `Invalid font name`

python - 如何在 Windows 中使用 Conda 抑制 __pycache__ 创建

java - 如何使用java在程序文件中移动文件?

java - 从 Linux 中使用 Java 读取标准输出不起作用

Emacs - 目录颜色为 dired

python - 如何更改Elpy自动完成框的颜色而不首先显示私有(private)变量