elisp如何检查是否按下了Shift键

时间:2009-09-25 14:50:14

标签: emacs elisp

我需要检查是否按下了Shift键。 更确切地说,我想根据是否按下Shift来设置直接开关。

(defadvice find-file-noselect (around find-file-noselect-set-switches activate)
  (let ((switches dired-listing-switches))
    ;; check if shift is pressed and set or not an "R" switch
    (setq dired-listing-switches "-lhRA")
    ad-do-it
    (setq dired-listing-switches switches)))

当然,我可以为不同的dired开关提供不同的快捷方式,但我想在为dired选择目录时动态更改我的开关。

1 个答案:

答案 0 :(得分:5)

重复问题(忽略另一个问题的“Windows”部分)。

Can I send a keypress to Windows from Emacs?

你能做的最好的(就像你提到的那样)有不同的快捷方式。它们可以通过大写来区分......例如

(global-set-key (kbd "C-x C-D") 'dired-with-some-switches)
(global-set-key (kbd "C-x C-d") 'dired-with-other-switches)