6

考えてみてください: 私の emacs ウィンドウを eshells で並べて表示すると、la xmonad になります。これは可能ですか?Mx eshell で最初の eshell インスタンスを開くことができますが、その後の呼び出しでは最初のインスタンスにフォーカスするだけです。

4

7 に答える 7

13

あなたはこれを行うことができます:

`C-u M-x eshell`

これにより*eshell**eshell*<2>、 などが作成されます。

于 2010-03-29T20:36:44.907 に答える
7

私の推奨するアプローチは、名前付きシェルを作成することです。

(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、目的のシェルを作成します。

于 2010-03-29T21:52:01.280 に答える
4

eshell の docstring には、「数値以外のプレフィックス arg は、新しいセッションを作成することを意味します」と記載されています。何度も入力M-- M-x eshellしましたが、そのたびに新しい eshell バッファーが開かれました。

于 2010-03-29T20:26:17.577 に答える
1

Cu Mx eshell はうまく機能しますが、私は名前付きシェルを好みます - make-shellアプローチは、バッファを切り替えるときに便利です

于 2011-05-18T06:10:24.810 に答える
0

おそらく、次の解決策の方が優れています。eshell バッファは eshell-buffer-name の値によって決定されるためです。バッファの名前を変更する必要はありません。

(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))
于 2014-05-06T01:52:22.630 に答える
0

make-eshellを拡張すると、次のカウンターを追加する eshell が作成されるため、 eshell1eshell2などのようになります。

(lexical-let ((count 1))
  (defun make-eshell-next-number ()
    (interactive)
    (eshell)
    (rename-buffer (concat "*eshell" (number-to-string count) "*"))
    (setq count (1+ count))))
于 2015-11-21T01:35:24.777 に答える
0

ansi-term を使用する場合は、GNU Screen の呼び出しもオプションの 1 つです。

于 2010-11-10T10:40:02.663 に答える