emacs で複数の eshell インスタンスを作成する
質問
考える:xmonad のように、emacs ウィンドウを eshell で並べて表示します。これは可能でしょうか?M-x eshell を実行して最初の eshell インスタンスを開くことはできますが、その後の呼び出しでは最初のインスタンスに焦点を当てるだけです。
解決
あなたはこれを行うことができます:
`C-u M-x eshell`
このは*eshell*
、*eshell*<2>
などを作成します。
他のヒント
私の好ましいアプローチは、名前のシェルを作成することです。
(defun make-shell (name)
"Create a shell buffer named NAME."
(interactive "sName: ")
(setq name (concat "$" name))
(eshell)
(rename-buffer name))
要旨です。その後M-x make-shell name
が必要なシェルを作成します。
というESHELL状態のdocstring「非数値前置引数手段は、新規セッションを作成します。」 I型指定された M-- M-X ESHELL 何度も繰り返して、それぞれの時間は、それが新しいESHELLバッファをオープンします。
C-u M-x eshell はうまく機能しますが、私は名前付きシェルの方が好きです - メイクシェル このアプローチは、バッファを切り替えるときに便利です
の呼び出しGNU画面は、ANSI-用語を使用してそれらのための別のオプションです。
Mybeは、以下のソリューションは、より良いです。 ESHELLバッファはESHELLバッファ名の値によって決定されるため。あなたは、バッファの名前を変更する必要はありません。
(defun buffer-exists (bufname)
(not (eq nil (get-buffer bufname))))
(defun make-shell (name)
"Create a shell buffer named NAME."
(interactive "sName: ")
(if (buffer-exists "*eshell*")
(setq eshell-buffer-name name)
(message "eshell doesnot exists, use the default name: *eshell*"))
(eshell))
メイクESHELL の上で拡大それはのeshell1 の、のeshell2 の、などのようなものですので、これは、次のカウンタを追加ESHELLを作成します。
(lexical-let ((count 1))
(defun make-eshell-next-number ()
(interactive)
(eshell)
(rename-buffer (concat "*eshell" (number-to-string count) "*"))
(setq count (1+ count))))
所属していません StackOverflow