2010-06-23 4 views
2

Je voudrais être en mesure de frapper <Print Screen> dans emacs et de déclencher un commit dans un dépôt git. Mon Lisp est assez rouillé et sais que c'est cassé, mais ne sait pas où:Comment lier <Print Screen> à une macro dans emacs?

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

Actuellement, il lie^1 parce que je ne sais pas comment représenter le bouton <Print Screen>.

Répondre

0

Vous devez exécuter cette première:

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

Après quoi, vous pouvez le faire:

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

Dans l'intérêt de devenir un meilleur contributeur à Stack Overflow (je suis nouveau ici), qu'est-ce qui ne va pas avec cette contribution qui n'obtient pas de points mod? Cela fonctionne (je l'ai testé avec une installation locale d'Emacs), et répond à la question qui a été posée. (Je suis moins préoccupé par les points eux-mêmes et plus préoccupé par la production de contributions utiles sur le site.Je prends des points pour être un proxy pour cela.) – mschaef

+1

En ce qui concerne devenir un meilleur contributeur, vous gardez simplement à elle b/c persistance C est la clé. Et, à propos de votre réponse, cela n'a pas fonctionné pour moi jusqu'à ce que j'aie aussi fait '(w32-register-hot-key [print])'. Aucune idée pourquoi, mais voilà. –

2

Une astuce générale qui fonctionne pour les frappes de liaison vous ne connaissez pas les noms Emacs pour :

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

Ensuite, appuyez sur C-x ESC ESC (qui est repeat-complex-command). Dans le minibufer, vous devriez voir une invocation de fonction global-clé-clé que vous pouvez copier dans votre fichier .emacs.

+1

J'utilise 'C-h k', ce qui est probablement un peu plus simple –

+0

Vous avez raison, C-h k et C-h c sont plus simples, mais je me souviens qu'il y avait une raison de préférer cette astuce ... Je ne m'en souviens plus. Probablement, il avait juste quelque chose à voir avec l'auto-complétion des onglets, vous aidant à taper moins. :-) – ShreevatsaR

2

Vous pouvez obtenir la clé d'impression écran avec

(kbd "<print>") 

Quant à la commettre réelle, il est probablement beaucoup plus facile à utiliser les fonctions de contrôle de version fournit emacs:

(vc-git-checkin "." nil "checkpoint") 
Questions connexes