LoginSignup
2
2

More than 5 years have passed since last update.

Eshellをpopwinで

Last updated at Posted at 2013-03-04

Eshellを開く・閉じるのにGitHubにあるEshell付属のesh-toggle.elを使っていたが、どうも開き方・閉じ方に不満があったのでpopwinを使おうと思い立った。

eshell-popを呼び出せばEshellが画面下半分に現れ、必要なくなったらC-gでEshellのウィンドウが消えます。

また、Universal Argument (C-u) を先に与えると、開いているバッファのカレントディレクトリにcdします。

これだけだとなんかいろいろ不具合があるような気がしますが、取り敢えず公開します。

my-eshell.el
(when (featurep 'popwin)
  (push '("*eshell*" :height 0.5) popwin:special-display-config)

  (defun eshell-pop (universal-argument)
    "open eshell window using popwin-elf"
    (interactive "P")
    (let* ((eshell-buffer-name "*eshell*")
       (eshell-buffer (get-buffer eshell-buffer-name))
       (file-name (buffer-file-name (current-buffer)))
       (current-directory (with-current-buffer (current-buffer) default-directory)))
      (if eshell-buffer
      (popwin:display-buffer eshell-buffer)
    (eshell))
      (when (and universal-argument file-name)
    (eshell-kill-input)
    (insert (concat "cd " current-directory))
    (eshell-send-input)
    (end-of-buffer)))))
2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2