aboutsummaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/lisp/my/my-prog.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-prog.el')
-rw-r--r--emacs/.emacs.d/lisp/my/my-prog.el17
1 files changed, 17 insertions, 0 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-prog.el b/emacs/.emacs.d/lisp/my/my-prog.el
index 6b7c705..210d7ef 100644
--- a/emacs/.emacs.d/lisp/my/my-prog.el
+++ b/emacs/.emacs.d/lisp/my/my-prog.el
@@ -138,5 +138,22 @@ some of the references to the identifiers."
(toggle-debug-on-error))
)
+(require 'my-buffer)
+
+(defun my-switch-or-create-shell-buffer (arg)
+ "Switch to or create a shell buffer.
+
+If there's no buffer with shell mode, or with a prefix-arg,
+create a shell buffer using `my-shell-with-directory'"
+ (interactive "P")
+ (if (or arg
+ (not (seq-filter
+ (lambda (buffer)
+ (with-current-buffer buffer
+ (derived-mode-p 'shell-mode)))
+ (buffer-list))))
+ (call-interactively 'my-shell-with-directory)
+ (my-buffer-quick-major-mode 'shell-mode)))
+
(provide 'my-prog)
;;; my-prog.el ends here