如何讓Emacs shell命令發(fā)送桌面通知
您可以使用Emacs的何讓鉤子機制來(lái)配置Emacs在某個(gè)外部命令完成后調用一個(gè)elisp函數。您可以使用John Wiegleys所編寫(xiě)的命令超棒的alert包來(lái)發(fā)送桌面通知: ( require ‘ alert ) ( defun eshe(′_`)ll-command-alert ( process status ) “Send ` alert ‘ with severity based on STATUS when PROCESS finished.”
E??macs簡(jiǎn)介
Emacs是一個(gè)強大的文本編輯器,它具有高度的發(fā)送可定制性和擴展(′_ゝ`)性,除了基本的桌面??文本編(????)輯功能外,Emacs還提供了很多實(shí)用的通知功能,如代碼補全、何讓語(yǔ)法高亮、命令文件比(bi)較等,發(fā)送Emacs還支持多種編程語(yǔ)言和工具,桌面可以方便地進(jìn)行程序開(kāi)發(fā)和調試,通知Emacs還有一個(gè)非常實(shí)用的何讓功能,就是命令可以通過(guò)shell命令來(lái)執行各種任務(wù),本文將??介紹如何讓Emacs shell命令發(fā)送桌面通知。發(fā)送
如何在Emacs中使用shell命令
在Emacs中,桌面可??以使用M-x快捷鍵來(lái)調用??一個(gè)shell命??令,通知要使用ls命令列出當前目錄下的文件,可以在Em??acs中輸入M-x ls,然后按回車(chē)鍵執行該命令,如果要在執行命令的同時(shí)發(fā)送桌面通知,可以使用M-x run-at-time命令。
如何在Emac??s中使用run-at-time命令
run-at-time命令允許你在指定的時(shí)間執行一個(gè)shell命令,要使用這個(gè)命令,首先需要安裝run-at-time包,安裝方法如下:
1、打開(kāi)Emacs。
2、按下M-x快捷鍵,然后輸入package-installヽ(′ー`)ノ,按回車(chē)鍵。
3、在提示框中輸入run-at-time,然后按回車(chē)鍵,這將顯示一個(gè)包含已安裝包的列表,在這個(gè)列表中找到并選擇run-at-time,然后按回車(chē)鍵確認安裝。
4、重啟Emacs,現在你應該可以使用run-at-time命令了。
如何在Emacs中設置桌面通知
要在Emacs中設置桌面通知,需(′?_?`)要先安裝一個(gè)名為elnotif??y的??第三方包,安裝方法如下:
1、(╬ ò﹏ó)打開(kāi)Emac??s。
2、按下M-x??快捷鍵,然后輸入package-install,按回車(chē)鍵。
3、在提示框中輸入elnotify,然后按回車(chē)??鍵,這將顯示一個(gè)包含已安裝包的列表,在這個(gè)列表中找到并選擇elnotify,然后按回車(chē)鍵確認安裝。
4、(???)重啟Emacs,現在(zai)你應該可以(yi)使用elnotify來(lái)發(fā)送桌面通知了。
示例代碼
下面是一個(gè)簡(jiǎn)單的示例,演示了如何在Emacs中使用run-at-time命令發(fā)送桌面通知:??
1、打開(kāi)Emacs。
2、按下M-x快捷鍵,然后輸入run-at-time,按回車(chē)鍵,這將顯示一個(gè)提示框,讓你輸入要執行的命令及其參數,你可以輸入以下命令:
(run-at-time nil "notify" "echo 'Hello, World!' | elnotify")
這個(gè)命令將在當前時(shí)間發(fā)??送一個(gè)桌面通知,通知的內容是(shi)“Hello, Wo(′?ω?`)rld!”,注意,這個(gè)命令中的管道符號(|)用于將兩個(gè)進(jìn)程連接起來(lái),在這個(gè)例子中,我們使用echo 'Hello, World!??'命令生成一個(gè)包含“Hello, World!”的字符串,然后將其傳遞給elnotify進(jìn)程以發(fā)送桌面通??知。
3、按回車(chē)鍵確認輸入的命令,現在你應該可以看到一個(gè)桌面通知,內容是“Hello, Wo?rld!”。
相關(guān)問(wèn)題(ti)與解答
1、如何自定義桌面(mian)通知的樣式?
2、如何讓多個(gè)Emacs實(shí)例共享同一個(gè)桌面通知?
答:要在多個(gè)Emacs實(shí)例之間共享桌面通知,可以使(′_`)用一個(gè)中央服務(wù)(wu)器來(lái)接收和分發(fā)通知,你可以選擇一個(gè)已有的服務(wù)器(′ω`),如elnotifyd,或者??自己搭建一個(gè)服務(wù)器,具體的搭建方法請參考相關(guān)文檔。
