elisp how to check if Shift key is pressed

2019-02-24 23:45发布

I need to check if Shift key is pressed. More exactly I would like to set dired switches depending on whether Shift is pressed.

(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)))

Of course, I can have different shortcuts for different dired switches, but I would like to change my switches dynamically during choosing a directory for dired.

标签: emacs elisp
1条回答
仙女界的扛把子
2楼-- · 2019-02-25 00:23

Duplicate question (ignoring the 'Windows' part of the other one).

Can I send a keypress to Windows from Emacs?

The best you can do (is as you mention) have different shortcuts. They can be differentiated by capitalization... for example

(global-set-key (kbd "C-x C-D") 'dired-with-some-switches)
(global-set-key (kbd "C-x C-d") 'dired-with-other-switches)
查看更多
登录 后发表回答