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

Ole*_*liv 3 emacs elisp

我需要检查是否按下了Shift键.更确切地说,我想设置dired开关取决于是否按下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)))
Run Code Online (Sandbox Code Playgroud)

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

Tre*_*son 5

重复的问题(忽略另一个的'Windows'部分).

我可以从Emacs向Windows发送按键吗?

你能做的最好的(正如你所提到的)有不同的快捷方式.例如,它们可以通过大写来区分

(global-set-key (kbd "C-x C-D") 'dired-with-some-switches)
(global-set-key (kbd "C-x C-d") 'dired-with-other-switches)
Run Code Online (Sandbox Code Playgroud)