2011.02.22
■[emacs][eshell] eshell と直前のバッファを行き来するコマンド 改造版
emacs 起動時に eshell バッファも一つ用意しておいて、C-M-return でトグルで切り替える。C-u C-M-return というふうに引数付きで呼ぶと、今いるバッファと同じディレクトリに cd した eshell バッファに移動する。昔作った自作コマンドに kiyoka.2011_02_22 自分的に超重要な eshell 用設定 を取り入れた。
;; emacs 起動時に eshell バッファも一つ用意する (add-hook 'after-init-hook (lambda() (eshell) (switch-to-buffer "*scratch*"))) (defun my-toggle-term () "eshell と直前のバッファを行き来する。C-u 付きで呼ぶと 今いるバッファと同じディレクトリに cd して開く" (interactive) (let ((ignore-list '("*Help*" "*Minibuf-1*" "*Messages*" "*terminal<1>*" "*terminal<2>*" "*terminal<3>*")) (dir default-directory)) (labels ((_my-toggle-term (target) (if (null (member (buffer-name (second target)) ignore-list)) (if (equal "*eshell*" (buffer-name (window-buffer))) (switch-to-buffer (second target)) (switch-to-buffer "*eshell*") (when current-prefix-arg (cd dir) (eshell-interactive-print (concat "cd " dir "\n")) (eshell-emit-prompt))) (_my-toggle-term (cdr target))))) (_my-toggle-term (buffer-list))))) (global-set-key (kbd "<C-M-return>") 'my-toggle-term)