Как мне связать <Print Screen> с макросом в emacs? - PullRequest
2 голосов
/ 23 июня 2010

Я бы хотел иметь возможность нажать <Print Screen> в Emacs и запустить коммит в Git-репозитории. Мой лист довольно ржавый и знаю, что он сломан, но не знаю где:

( defun tip-local-write nil "Write to store" ( interactive )
     ( save-buffer )
     ( change-directory "~/tip" )
     ( shell-command "git commit -m checkpoint ." )
     ( shell-command "git submodule foreach git commit -m checkpoint . \\\|\\\| true" ) ) )
( global-set-key [?\M-1] 'tip-local-write )

В настоящее время это привязка к ^ 1, потому что я не знаю, как представить кнопку <Print Screen>.

Ответы [ 3 ]

2 голосов
/ 23 июня 2010

Общий прием, который работает для связывания нажатий клавиш, для которых вы не знаете имен Emacs:

  • Hit M-x global-set-key RET <your keystroke> RET <name of function>

Затем нажмите CxESC ESC (что составляет repeat-complex-command).В минибуфере вы должны увидеть глобальный вызов функции set-key, который вы можете скопировать в ваш файл .emacs.

2 голосов
/ 23 июня 2010

Вы можете получить ключ печати экрана с помощью

(kbd "<print>")

Что касается фактической фиксации, вероятно, гораздо проще использовать функции управления версиями, которые обеспечивает emacs:

(vc-git-checkin "." nil "checkpoint")
0 голосов
/ 23 июня 2010

Сначала нужно запустить:

(w32-register-hot-key [snapshot])

После чего вы можете сделать это:

(global-set-key [snapshot] 'tip-local-write ) 
...