2013-08-20 52 views
2

Cask在OSX上使用內置的emacs,它不支持Cask要求的--script參數。有什麼方法可以告訴Cask使用Emacs.app版本嗎?在Emacs.app中使用Cask

我試過這裏的解決方案:How to start "emacsformacosx" in terminal 但他們沒有幫助。

我終於剛剛進入在木桶文件的底部提供的命令:

/Applications/Emacs.app/Contents/MacOS/Emacs -Q --script ~/.cask/cask-cli.el 

這是不是很優雅。

回答

8

你可以告訴cask這Emacs的可執行文件運行,通過導出環境變量$EMACS

$ export EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs 
$ cask install 

爲了避免設置此變量要使用cask任何時間的反覆過程中,你需要創建一個Emacs.app的命令行包裝器。它必須是本身是一個合適的可執行文件,而不僅僅是一個shell別名或函數,如在How to start "emacsformacosx" in terminal上推薦的,因爲別名和shell函數都不可用於shell的子進程。

這很容易通過創建一個文件/usr/local/bin/emacs,其內容如下

#!/bin/bash 
exec /Applications/Emacs.app/Contents/MacOS/Emacs -nw "[email protected]" 

您將需要root權限來創建這個文件來完成,並且必須事後將其標記爲可執行:

$ sudo chmod a+x /usr/local/bin/emacs 

之後,您應該能夠從emacs從命令行啓動Emacs.app。這對於Cask來說不用設置$EMACS就可以拿起Emacs.app。

或者,你可能想用自制安裝的Emacs,由

$ brew install emacs --cocoa --srgb --with-gnutls 
$ brew linkapps 

這會自動創建命令行包裝,並有一些其他的優勢,比如用一些其他的庫建設。

我強烈建議使用自制軟件。