2009-09-25 4 views
3

Мне нужно проверить, нажата ли клавиша Shift. Точнее, я хотел бы установить устаревшие переключатели в зависимости от того, нажата ли клавиша Shift.elisp как проверить, нажата ли клавиша 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.

ответ

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) 
+0

Я не рассматриваю это как дубликат - другой вопрос спрашивает об отправке ключа, это один о получении одного (или проверки, если один нажата) , –

Смежные вопросы