diff options
author | Erik Oosting | 2022-09-20 10:00:35 +0200 |
---|---|---|
committer | Erik Oosting | 2022-09-20 10:10:46 +0200 |
commit | 812caeb3143a2c4e413c060425518a28df17b2ab (patch) | |
tree | 75892d73fa8756f2a8256c1e26756bf23d1b369d /new-term.el |
Diffstat (limited to 'new-term.el')
-rw-r--r-- | new-term.el | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/new-term.el b/new-term.el new file mode 100644 index 0000000..53bb154 --- /dev/null +++ b/new-term.el @@ -0,0 +1,35 @@ +;;; new-term.el --- A way to spawn multiple emacs terminals -*- lexical-binding: t; -*- + +;; Copyright © 2022 Erik Oosting + +;; Author: Erik Oosting <crazazy@tilde.cafe> +;; Keywords: application-launcher, misc +;; URL: https://crazazy.tilde.cafe/emenu.git/log.html + +;;; License: +;; This file comes with the MIT license, and without any warranty whatsoever +;; You can do with this stuff whatever you want to, but just remember +;; to put me in the footnote :D. Would be nice at least + +;;; Commentary: +;; A simple way to have multiple terminals in emacs. just type "M-x new-term" +;; to start a new session + +;;; Code: + +;;;###autoload +(defun new-term (program) + "start a new terminal emulator in a new buffer" + (interactive (list (read-from-minibuffer "Run program: " + (or explicit-shell-file-name + (getenv "ESHELL") + shell-file-name)))) + (let* ((term-list (seq-filter + (lambda (s) (string-match-p "terminal" (buffer-name s))) + (buffer-list))) + (term-num (number-to-string (length term-list)))) + (set-buffer (make-term (concat "terminal-" term-num) program)) + (term-mode) + (term-char-mode) + (switch-to-buffer (concat "*terminal-" term-num "*")))) +;;; new-term.el ends here |