我越來越習慣於從emacs內部做所有事情,但看起來eshell,shell和term只會運行一個實例。有沒有辦法在emacs內部運行多個終端(最好是術語)?多個emacs終端
回答
你只需重命名緩衝,這裏有一個函數來啓動的zsh和提示輸入緩衝區名稱:
(defun zsh (buffer-name)
"Start a terminal and rename buffer."
(interactive "sbuffer name: ")
(term "/bin/zsh")
(rename-buffer buffer-name t))
使用命令M-x rename-buffer
給當前shell緩衝區的新名字,然後就可以開始一個新的shell。
你也可以使用'M-x rename-unique'讓emacs找到新名字 – 2010-05-07 10:52:54
您可以隨時創建C-U m的-X外殼
取決於底層操作系統,無論你獲得另一個shell還是跳轉到現有的shell – 2010-05-07 08:23:59
一個新的外殼可以重命名項,並開始一個新的。我正在使用類似的東西,從其他人.emacs中拿走它。
(require 'term)
(defun visit-ansi-term()
"If the current buffer is:
1) a running ansi-term named *ansi-term*, rename it.
2) a stopped ansi-term, kill it and create a new one.
3) a non ansi-term, go to an already running ansi-term
or start a new one while killing a defunt one"
(interactive)
(let ((is-term (string= "term-mode" major-mode))
(is-running (term-check-proc (buffer-name)))
(term-cmd "/bin/bash")
(anon-term (get-buffer "*ansi-term*")))
(if is-term
(if is-running
(if (string= "*ansi-term*" (buffer-name))
(call-interactively 'rename-buffer)
(if anon-term
(switch-to-buffer "*ansi-term*")
(ansi-term term-cmd)))
(kill-buffer (buffer-name))
(ansi-term term-cmd))
(if anon-term
(if (term-check-proc "*ansi-term*")
(switch-to-buffer "*ansi-term*")
(kill-buffer "*ansi-term*")
(ansi-term term-cmd))
(ansi-term term-cmd)))))
或者你可以只有一個和它開始screen session。
我修改通過哈波接受的答案,從而開始新的外殼,而不提示,貝殼在表單*命名殼1 *,*殼2 *,*殼3 *等:
(setq bash-counter 1)
(defun bash()
"Start a bash shell"
(interactive)
(setq bash-counter (+ bash-counter 1))
(let
((explicit-shell-file-name "/bin/bash"))
(shell (concat "*shell-" (number-to-string bash-counter) "*"))
))
這裏有一個超輕量級的小功能,你可以打電話到自動重命名術語你」繼續,然後開始一個新詞:
(defun new-ansi-term()
(interactive)
(if (string= "*ansi-term*" (buffer-name))
(rename-uniquely))
(ansi-term "/bin/bash"))
然後綁定是ANSI-期限內,我發現這工作:
(defvar ansi-term-after-hook nil)
(add-hook 'ansi-term-after-hook
'(lambda()
(define-key term-raw-map (kbd "C-t") 'new-ansi-term)))
(defadvice ansi-term (after ansi-term-after-advice (org))
(run-hooks 'ansi-term-after-hook))
(ad-activate 'ansi-term)
如果你還再以正常的方式新的ANSI長期結合CT,你會發現,當你Ct將關注ansi-term緩衝區,然後如果您正在查看ansi-term,Ct會將其重命名爲某個唯一的名稱,然後爲您打開一個新的ansi-term 。這與tabbar結合使用效果非常好,它將向您顯示所有在緩衝區第一行之上打開的ansi-terms。易於在它們之間進行切換;-)
- 1. 試圖讓一個終端在Emacs
- 2. emacs中的串行終端
- 3. 的Emacs只能在終端
- 4. 終端中的Emacs Meta-Key
- 5. 運行的emacs從終端
- 6. Emacs:終端與外殼?
- 7. .emacs編輯以始終在終端模式下啓動Emacs?
- 8. Jenkins - 多個終端輸出
- 9. 從emacs終端複製和粘貼
- 10. emacs的 - 殺死終端仿真器
- 11. emacs的鍵綁定不會在終端
- 12. emacs終端bash(PS1)提示重複
- 13. 開始Python Emacs&終端設置
- 14. 終端Emacs中的真彩色(24位)
- 15. 如何通過OSX終端打開emacs
- 16. 終端調整大小混淆emacs
- 17. 與cscope和終端的emacs-nw問題
- 18. Emacs的鼠標支持在終端SSH
- 19. 更改emacs終端顏色主題
- 20. 如何拆分屏幕Emacs和終端
- 21. Emacs的輸入解碼-map爲終端
- 22. 在Emacs中調整終端大小
- 23. 僅用於GUI /終端emacs的設置
- 24. 使emacs gui只使用終端顏色
- 25. 使用AppleScript在終端中運行emacs
- 26. Emacs lisp代碼打開大量多終端
- 27. 如何發送M-。到Emacs中的終端(多項)
- 28. 在Emacs的緩衝區打開一個文件,而在Emacs終端
- 29. 對多個調試終端使用linux僞終端API
- 30. AngularJS +雲終端:裝載終端跨多個控制器API
人們還時常發生投票關閉emacs的問題,因爲「與編程無關」。我不同意。如果問題是關於如何格式化Eclipse透視圖,或者如何設置Visual Studio來讀取rss提要,那麼沒有人會考慮以這種方式推薦它。以這種方式處理與emacs相關的問題是沒有意義的。 (ps:有一個upvote) – Cheeso 2010-05-09 11:27:32