私はWindows 7でEmacs 23.3.1を使用しています。私はemacsからM-xシェルを使用してシェルを実行できることを知っています。私は同じ時間に複数のシェルウィンドウを持ちたいと思いますが、M-xシェルを2回入力するだけで同じシェルウィンドウが開きます。Emacsで複数のシェルを実行する方法
別のシェルウィンドウを使用する方法はありますか?
私はWindows 7でEmacs 23.3.1を使用しています。私はemacsからM-xシェルを使用してシェルを実行できることを知っています。私は同じ時間に複数のシェルウィンドウを持ちたいと思いますが、M-xシェルを2回入力するだけで同じシェルウィンドウが開きます。Emacsで複数のシェルを実行する方法
別のシェルウィンドウを使用する方法はありますか?
C-UM-Xシェルはそれを行います。
それは、新しいシェルの名前のために*shell*<2>
ようになりますデフォルトのためだけのヒットのリターンを(プロンプトが表示されますあなたがESHELL使用する場合
はまた、別のトリックをESHELLで動作します
。。: Mxが ESHELLあなたは数値接頭引数を使用する場合、それはそのESHELLバッファに行くことができます、(むしろ新しいESHELLを開始するよりも)*eshell*
に戻りますと同じように。例えば、C-3のMxESHELLは*eshell*<3>
に移動します。悲しいことに、あなたがshellを使うなら(eshellではなく)、このトリックはうまくいかないようです(少なくとも私のEmacs 24.0.50.1では少なくともです)。
シェルのバッファの名前をM-x rename-bufferと変更できます。その後、2番目のシェルを起動することができます。
私はマットで行くことを好みますカーティスの解。新しい名前でシェルを実行すると、現在の名前の名前を変更して新しい名前を実行するよりも簡単です。 – S4M
シェルに画面のようなインターフェイスを使用すると便利かもしれません。私は自分自身を書いたが、そこに他の人がいる、例えばEmacsScreenのようなものがある。
これは、使用しているバッファに新しいシェルインスタンスを自動的に生成します。 MSまたはそのインスタント喜びなどの代にバインド:
(defun new-shell()
(interactive)
(let (
(currentbuf (get-buffer-window (current-buffer)))
(newbuf (generate-new-buffer-name "*shell*"))
)
(generate-new-buffer newbuf)
(set-window-dedicated-p currentbuf nil)
(set-window-buffer currentbuf newbuf)
(shell newbuf)
)
)
結果は...もっとひどい括弧であっても、聞かせて使用して書き換えを推奨するPHILSへ
感謝:\
より後4年以上前から、この問題を時折見ている人がいるので、シェルを読み込んでその名前をつけるために書いた簡単な関数を公開します。そうすれば、ファイルのソートに専念している場合は "sort-files"、ハイブクエリを実行する場合は別の "hive"というシェルに名前を付けることができます。私は(Emacsの24日)今では日常を使用します。
(defun create-shell()
"creates a shell with a given name"
(interactive);; "Prompt\n shell name:")
(let ((shell-name (read-string "shell name: " nil)))
(shell (concat "*" shell-name "*"))))
これは新しいシェルにあなたが関数を起動するたびに開き、必要に応じて自動的に名前を変更します。 追加プラスは、あなたが(...変数dired/TRAMP)をリモートからファイルを編集している場合、これはリモートホスト上でシェルを開き、リモートホスト名に自動的に名前を変更します次のとおりです。
(defun ggshell (&optional buffer)
(interactive)
(let* (
(tramp-path (when (tramp-tramp-file-p default-directory)
(tramp-dissect-file-name default-directory)))
(host (tramp-file-name-real-host tramp-path))
(user (if (tramp-file-name-user tramp-path)
(format "%[email protected]" (tramp-file-name-user tramp-path)) ""))
(new-buffer-nameA (format "*shell:%s*" host))
(new-buffer-nameB (generate-new-buffer-name new-buffer-nameA))
(currentbuf (get-buffer-window (current-buffer)))
)
(generate-new-buffer new-buffer-nameB)
(set-window-dedicated-p currentbuf nil)
(set-window-buffer currentbuf new-buffer-nameB)
(shell new-buffer-nameB)
))
これは正常です。 C-u M-xシェルは、新しいシェルの名前を私に尋ねます。ありがとう! – S4M
S4Mに問題はありません。私はeshellのためのヒントを追加しました。あなたがシェルについて尋ねたように、私はあなたがそれが有用であるかどうかわかりませんが、同じ質問をしているeshellユーザはそれが役に立つと思うかもしれません。 –
ここで何かを学んだ、ありがとう! – Giann