Question

Pensez: carrelage ma fenêtre avec emacs eshells, à la xmonad. Est-ce possible? Je peux M-x eshell pour ouvrir la première instance eshell mais invocations futures se concentrer tout d'abord.

Était-ce utile?

La solution

Vous pouvez faire ceci:

`C-u M-x eshell`

Cela va créer *eshell*, *eshell*<2>, et ainsi de suite.

Autres conseils

Mon approche préférée consiste à créer des coquilles nommées:

(defun make-shell (name)
  "Create a shell buffer named NAME."
  (interactive "sName: ")
  (setq name (concat "$" name))
  (eshell)
  (rename-buffer name))

est l'essentiel. Ensuite M-x make-shell name va créer la coquille désirée.

Le docstring pour eshell déclare que « Un arg préfixe signifie pour créer non numérique une nouvelle session. » Je tapais M-- M-x eshell reprises, et chaque fois qu'il a ouvert un nouveau tampon eshell.

Cu Mx eshell fonctionne très bien, mais je préfère les coquilles nommées - make-shell l'approche est utile lorsque les tampons de commutation

Invoquer GNU Screen est une autre option pour ceux qui utilisent ansi terme

MTBE, la solution suivante est mieux. La mémoire tampon de eshell est déterminé par la valeur du nom de eshell-tampon. Vous ne devez pas renommer le tampon.

(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))

make-eshell , cela crée un eshell annexant le compteur suivant, il est donc comme eshell1 , eshell2 , etc.

(lexical-let ((count 1))
  (defun make-eshell-next-number ()
    (interactive)
    (eshell)
    (rename-buffer (concat "*eshell" (number-to-string count) "*"))
    (setq count (1+ count))))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top