如何在已開啟的 Emacs 而不是新實例中從 bash 命令列開啟檔案?當我打字時
$ emacs file.txt
它會開啟一個新的 Emacs 實例,而不是在現有 Emacs 實例中開啟檔案。 Mac OS X 10.6.8。和
GNU Emacs 23.4.1 (x86_64-apple-darwin10.8.0, NS apple-appkit-1038.36)
beta.macosforge.org 上的 2012 年 2 月 27 日發布
答案1
您正在尋找的是 emacs 伺服器模式。將此行新增至您的 .emacs 檔案:
(server-start)
然後,使用 emacsclient 開啟該檔案:
emacsclient foobar.txt
看一下這頁面了解更多。
為了避免手動啟動 emacs 或將其設定為自動啟動,您可以編寫一個小函數來嘗試連接到正在運行的伺服器(透過執行emacsclient
),如果沒有,emacs
請執行。將其新增至 shell 的設定檔中(例如~/.bashrc
):
emacs(){
emacsclient "$@" 2>/dev/null || /usr/bin/emacs "$@"
}
現在,只需運行emacs file
即可啟動伺服器或連接到現有實例。
答案2
恐怕我不記得在哪裡找到了以下解決方案。對不起。但是,由於它對我來說效果最佳,所以我將其添加到此處。
確保您.emacs
啟動了 emacs 伺服器。
(server-start)
接下來,在.bashrc
定義函數中:
function run_emacs
{
/usr/bin/emacsclient "$1" &
}
並設定環境變數:
export EDITOR=emacsclient
export ALTERNATE_EDITOR=emacs
最後,定義別名:
alias emacs='run_emacs'