aboutsummaryrefslogtreecommitdiff
path: root/.emacs.d/rul-lisp/packages/rul-terminals.el
blob: a0101a465d6d092f530373c4a48665b4a84be86e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
(use-package vterm
  :ensure t
  :init
  (setq vterm-always-compile-module t
        vterm-max-scrollback 100000)
  :hook
  (vterm-mode . goto-address-mode)
  :bind
  (:map vterm-mode-map
        ("C-c C-t" . vterm-copy-mode)
        ("C-l" . vterm-clear))
  :config
  (define-key vterm-mode-map (kbd "C-c C-c")
              (lambda ()
                (interactive)
                (vterm-send-string "\C-c"))))

(use-package multi-vterm
  :ensure t
  :after vterm
  :bind (("C-c t" . multi-vterm))
  :config
  (defun rul/vterm-new-tab ()
    "Create a new tab and open a new vterm."
    (interactive)
    (tab-new)
    (multi-vterm))

  ;; Inside vterm buffers, make C-c t spawn a new tab + vterm
  (define-key vterm-mode-map (kbd "C-c t") #'rul/vterm-new-tab))

(provide 'rul-terminals)
nihil fit ex nihilo