我最近開始使用Emacs作爲我的主編輯器。有一件事困擾我: 當我在我的shell中啓動Emacs時,它會在新窗口中啓動Emacs。我希望它在shell中調用,並在工作區調用它時在新窗口中啓動。從外殼啓動時在shell中啓動Emacs
這可以通過一些我錯過的配置來實現,或者是任何類型的lisp嗎?
我使用Manjaro與Xfce和魚貝(http://fishshell.com/)
問候, 羅賓
我最近開始使用Emacs作爲我的主編輯器。有一件事困擾我: 當我在我的shell中啓動Emacs時,它會在新窗口中啓動Emacs。我希望它在shell中調用,並在工作區調用它時在新窗口中啓動。從外殼啓動時在shell中啓動Emacs
這可以通過一些我錯過的配置來實現,或者是任何類型的lisp嗎?
我使用Manjaro與Xfce和魚貝(http://fishshell.com/)
問候, 羅賓
因此,有別名的解決方案,但PB我遇到的是,我有時會emacs的用Ctrl睡覺-z然後我忘記了我已經啓動了一個emacs會話,所以我再次使用我的別名,最終在終端中出現了兩個emacs,這讓我很煩惱。 於是我就用它檢查是否一個Emacs正在運行的功能:
cemacs() {
if (ps|grep emacs); then
echo "Hey, emacs is already running";
fg %emacs
else
emacs -nw [email protected]
fi
}
快捷
我定義了一個方便快捷重振睡覺的emacs:
bind -x '"\C-x\C-e":fg %emacs'
Emacs-服務器
所以這就是我用了很長時間克,並不完美。我不能啓動一個正常的emacs,然後我的功能,除非我使用emacs服務器:http://wikemacs.org/index.php/Emacs_server
只需創建一個emacsclient -t的別名。
和外殼模式
但現在,我更喜歡使用Emacs中的終端(它是如此的得心應手圍繞外殼的緩衝移動,複製粘貼不用鼠標,尋找一個字符串,轉到輸出的開頭,用dired操作文件,...)。
好主意!
我剛剛更新了我的.bashrc:
edit_file_in_emacs_console() {
emacsclient -t [email protected] || emacs -q -nw [email protected]
}
if [ "$PS1" ]; then
alias emacs=edit_file_in_emacs_console
fi
於是我就用當前Emacs的服務器(如果可用),或(-q)來快速啓動一個簡單的emacs控制檯。
你的意思是像'emacs -nw'? – jlahd
謝謝jlahd,我不知道'emacs -nw'。有沒有在shell中啓動時用-nw自動調用emacs的方法? – robotroll
您應該爲您的shell創建一個別名,例如'alias em「emacs -nw」'。之後,在shell中說'em'運行'emacs -nw'。 – jlahd