想一想:用 eshell 平铺我的 emacs 窗口,一个 xmonad。这可能吗?我可以 Mx eshell 打开第一个 eshell 实例,但未来的调用只关注第一个实例。
问问题
1306 次
7 回答
13
你可以这样做:
`C-u M-x eshell`
这将创建*eshell*
,*eshell*<2>
等。
于 2010-03-29T20:36:44.907 回答
7
我首选的方法是创建命名 shell:
(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 的文档字符串指出“非数字前缀 arg 意味着创建一个新会话”。我M-- M-x eshell一遍又一遍地输入,每次它都会打开一个新的 eshell 缓冲区。
于 2010-03-29T20:26:17.577 回答
1
Cu Mx eshell 效果很好,但我更喜欢命名 shell - make-shell方法,在切换缓冲区时很有用
于 2011-05-18T06:10:24.810 回答
0
对于那些使用 ansi-term 的人来说,调用 GNU Screen 是另一种选择
于 2010-11-10T10:40:02.663 回答
0
Mybe,以下解决方案更好。因为 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 附加下一个计数器,所以它就像eshell1,eshell2等:
(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 回答