2010-06-23 49 views
2

我希望能夠在emacs中擊中<Print Screen>並在git存儲庫中觸發提交。我口齒不清荒廢了,知道這是壞了,但不知道在哪裏:如何將<Print Screen>綁定到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) 

目前,它綁定到^ 1,因爲我不知道如何來表示<Print Screen>按鈕。

回答

0

你需要運行這個第一:

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

之後,你可以這樣做:

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

在成爲利益一個更好的Stack Overflow貢獻者(我在這裏是新的),這個貢獻有什麼問題,它沒有得到mod點數?它的工作原理(我測試了Emacs的本地安裝),並回答了被問到的問題。 (我不太在意點數本身,更關心爲網站做出有用的貢獻,我正在考慮將其作爲代理) – mschaef 2010-06-28 17:39:34

+1

關於成爲更好的貢獻者,你只需要保持它的B/C持久性是關鍵。而且,關於你的回答,直到我還完成了'(w32-register-hot-key [print])',它纔會起作用。不知道爲什麼,但你去了。 – 2010-09-29 18:58:48

2

,對於綁定按鍵,你不知道Emacs的名作品的一般技巧:

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

然後,點擊C-x ESC ESC(即repeat-complex-command)。在minibufer中,您應該看到一個全局集合鍵函數調用,您可以將其複製到.emacs文件中。

+1

我使用'C-h k',這可能比較簡單 – 2010-06-23 17:12:14

+0

你是對的,C-h k和C-h c比較簡單,但我記得有一些理由更喜歡這個技巧......我現在不記得了。可能它只是與標籤自動補全有關,幫助你減少輸入。 :-) – ShreevatsaR 2010-06-23 17:18:08

2

你可以得到

(kbd "<print>") 

至於實際提交打印屏幕鍵,它可能更容易使用的版本控制功能emacs的規定:

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