[问题]启动Emacs时可不可以根据是否在X下而执行不同的脚本?

Vim、Emacs配置和使用
回复
头像
bearscafe
帖子: 694
注册时间: 2007-05-05 23:11
送出感谢: 2 次
接收感谢: 0

[问题]启动Emacs时可不可以根据是否在X下而执行不同的脚本?

#1

帖子 bearscafe » 2007-07-24 2:10

想在tty下运行Emacs时,执行与X下运行时不同的脚本,不知可行否?
herberteuler
帖子: 45
注册时间: 2007-01-27 14:11
送出感谢: 0
接收感谢: 0

#2

帖子 herberteuler » 2007-07-24 9:28

你可以利用 window-system 这个变量来识别 Emacs 在哪个窗口管理器里运行。它的值有下面几种可能:

`x' - Emacs 在 X 中运行
`pc' - Emacs 在 DOS 中运行
`w32' - Emacs 在 Windows 中运行
`mac' - Emacs 在 Macintosh 中运行
`nil' - Emacs 在基于字符的终端中运行
头像
bearscafe
帖子: 694
注册时间: 2007-05-05 23:11
送出感谢: 2 次
接收感谢: 0

#3

帖子 bearscafe » 2007-07-24 14:29

herberteuler 写了:你可以利用 window-system 这个变量来识别 Emacs 在哪个窗口管理器里运行。它的值有下面几种可能:

`x' - Emacs 在 X 中运行
`pc' - Emacs 在 DOS 中运行
`w32' - Emacs 在 Windows 中运行
`mac' - Emacs 在 Macintosh 中运行
`nil' - Emacs 在基于字符的终端中运行
是否是说,可以用类似if的判断语句来选择执行?我对lisp语言不太了解,能不能给个简单示例?谢谢!
herberteuler
帖子: 45
注册时间: 2007-01-27 14:11
送出感谢: 0
接收感谢: 0

#4

帖子 herberteuler » 2007-07-24 14:54

代码: 全选

(cond ((eq window-system 'x)
       (message "In X"))
      ((eq window-system 'pc)
       (message "In DOS"))
      ((eq window-system 'w32)
       (message "In Windows"))
      ((eq window-system 'mac)
       (message "In Macintosh"))
      (t
       (message "In character-based terminal")))
头像
bearscafe
帖子: 694
注册时间: 2007-05-05 23:11
送出感谢: 2 次
接收感谢: 0

#5

帖子 bearscafe » 2007-07-24 16:38

成功。太感谢了! :D
回复

回到 “Vim和Emacs”