[英]is there a way to specify custom init file on emacs startup?
我已經嘗試過runemacs --user d:\\path\\to\\init\\.emacs
但它給出了
Error (initialization): Invalid user name d:\\path\\to\\init\\.emacs
我的意思是自定義位置中的自定義文件,例如我的pendrive等,而不是我在用戶文件夾中的默認位置。 我嘗試為不同的配置創建具有相應init的cmd文件。
我猜你的最終目標是從USB驅動器運行Emacs,你可以隨身攜帶。 有兩種方法可以讓Emacs以不同的init文件啟動:
(1)-q --load方式
這只是為了運行
emacs -q --load path-to-your-init.el
它在沒有任何初始化的情況下啟動Emacs,然后加載path-to-your-init.el
有這種方式:在這種情況下,Emacs並不真正認為el文件是一個init文件,事實上,Emacs根本沒有經過初始化,這意味着跳過了以下的初始化后步驟:
啟用包,即評估(package-initialize)
運行hook after-init-hook
,即評估(run-hooks after-init-hook)
您可能必須在備用init文件中添加初始化后的內容。
此外,如果使用-q
選項啟動Emacs,則自定義界面將不允許您保存設置。
(2)HOME方式
使用內容創建my-emacs.bat:
set HOME=%~dp0
C:\path-to-your\Emacs\bin\runemacs.exe --xrm "emacs.Background: light green"
當您單擊該bat文件時,Emacs會創建名為.emacs.d
文件夾, .emacs.d
不是在您的常用用戶目錄中,而是在bat文件所在的位置。 您可以將自己的init.el
放在.emacs.d
文件夾中。 使用此Emacs,評估(find-file“〜/ .emacs.d / init.el”)將打開您自己的可移植init.el
而不是通常用戶目錄中的init文件。 你可能想要刪除--xrm "emacs.Background: light green"
部分,我包括那個,因為我總是忘記哪個是Emacs。
問題:這個Emacs在自己的.emacs.d
目錄中有自己的包目錄。 這可能是也可能不是你想要的。 如果要共享包目錄,可以使用Link Shell Extension更改package-user-dir
或創建指向要共享包目錄的符號鏈接。
在USB驅動器上運行Emacs時需要考慮的事項:
Emacs將其部分功能外包給外部工具。 Grepping和比較外包給grep和diff,所以你可能已經在你的系統上安裝了至少GnuWin32 Grep和GnuWin32 DiffUtils。 拼寫檢查的一部分外包給aspell,這也是一個單獨的安裝。 加密外包給GPG,所以Gpg4Win另外另外安裝。 為了讓您的便攜式Emacs具備所有這些功能,所有這些外部工具也應該在您的USB驅動器上。 幸運的是,GnuWin32和aspell都是便攜式的。 我不知道GPG是不是。 如果你設法制作只依賴於eshell自己的grep的lgrep和rgrep的版本,那么對外部grep的依賴可能會被消除,但似乎沒有人做過它,所以制作這樣的lgrep / rgrep是大膽地去到沒有人去過的地方。
您可以通過在命令行上鍵入emacs --help
來獲取有關所有emacs選項的幫助。 該幫助顯示--user
期望用戶的名稱,而不是elisp文件的路徑。
要在啟動時加載lisp文件,可以使用--load
選項:
$ emacs --help
...
--load, -l FILE load Emacs Lisp FILE using the load function
...
如果要阻止加載默認的init文件,可以使用此選項:
$ emacs --help
...
--no-init-file, -q load neither ~/.emacs nor default.el
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.