Created
February 19, 2022 16:46
-
-
Save zw963/184c768125b7473b69fd230690d3499b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(require 'multi-vterm) | |
(defun drop-down-term () | |
"Open a drop-down terminal in the same directory as the current file." | |
(interactive) | |
(require 'multi-vterm) | |
(let ((win (get-local-window-for-buffer-name "*vterminal"))) | |
(if win | |
(delete-window win) | |
(let ((vterm-buffer | |
(or | |
(get-local-buffer-for-buffer-name "*vterminal") | |
(get-buffer-create (multi-vterm-get-buffer)) | |
))) | |
(unless (derived-mode-p 'vterm-mode) | |
(setq multi-vterm-buffer-list (nconc multi-vterm-buffer-list (list vterm-buffer))) | |
(set-buffer vterm-buffer) | |
(multi-vterm-internal) | |
) | |
(setq win | |
(display-buffer-in-side-window | |
vterm-buffer | |
'((side . top) | |
;; (dedicated . t) | |
))) | |
(select-window win))))) | |
(add-hook 'vterm-mode-hook (lambda () | |
(define-key vterm-mode-map (kbd "M-9") 'multi-vterm-prev) | |
(define-key vterm-mode-map (kbd "M-0") 'multi-vterm-next) | |
(define-key vterm-mode-map [(control x) (\2)] 'split-window-below-then-switch-to-new-vterm) | |
(define-key vterm-mode-map [(control x) (\3)] 'split-window-right-then-switch-to-new-vterm) | |
(define-key vterm-mode-map [(shift control t)] 'multi-vterm) | |
(define-key vterm-mode-map [(shift space)] 'multi-vterm-dedicated-toggle) | |
)) | |
(defun split-window-below-then-switch-to-new-vterm (&optional size) | |
(interactive) | |
(split-window-below size) | |
(other-window 1) | |
(multi-vterm) | |
) | |
(defun split-window-right-then-switch-to-new-vterm (&optional size) | |
(interactive) | |
(split-window-right size) (other-window 1) (multi-vterm)) | |
(provide 'multi-vterm_init) | |
;;; multi-vterm_init.el ends here |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment