51 lines
1.8 KiB
EmacsLisp
51 lines
1.8 KiB
EmacsLisp
;;; init-vterm.el --- vterm settings -*- lexical-binding: t -*-
|
|
;;; Commentary:
|
|
|
|
;;; Code:
|
|
|
|
(use-package vterm
|
|
:when (memq window-system '(mac ns x pgtk))
|
|
:bind (:map vterm-mode-map
|
|
("C-y" . vterm-yank)
|
|
("M-y" . vterm-yank-pop)
|
|
("C-k" . vterm-send-C-k-and-kill))
|
|
:init
|
|
(setq vterm-shell "zsh")
|
|
:config
|
|
(setq vterm-always-compile-module t)
|
|
(defun vterm-send-C-k-and-kill ()
|
|
"Send `C-k' to libvterm, and put content in kill-ring."
|
|
(interactive)
|
|
(kill-ring-save (point) (vterm-end-of-line))
|
|
(vterm-send-key "k" nil nil t)))
|
|
|
|
(use-package vterm-toggle
|
|
:when (memq window-system '(mac ns x pgtk))
|
|
:bind (([f8] . vterm-toggle)
|
|
([f9] . vterm-compile)
|
|
:map vterm-mode-map
|
|
([f8] . vterm-toggle)
|
|
([(control return)] . vterm-toggle-insert-cd))
|
|
:config
|
|
(setq vterm-toggle-cd-auto-create-buffer nil)
|
|
(defvar vterm-compile-buffer nil)
|
|
(defun vterm-compile ()
|
|
"Compile the program including the current buffer in `vterm'."
|
|
(interactive)
|
|
(setq compile-command (compilation-read-command compile-command))
|
|
(let ((vterm-toggle-use-dedicated-buffer t)
|
|
(vterm-toggle--vterm-dedicated-buffer (if (vterm-toggle--get-window)
|
|
(vterm-toggle-hide)
|
|
vterm-compile-buffer)))
|
|
(with-current-buffer (vterm-toggle-cd)
|
|
(setq vterm-compile-buffer (current-buffer))
|
|
(rename-buffer "*vterm compilation*")
|
|
(compilation-shell-minor-mode 1)
|
|
(vterm-send-M-w)
|
|
(vterm-send-string compile-command t)
|
|
(vterm-send-return)))))
|
|
|
|
(provide 'init-vterm)
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;; init-vterm.el ends here
|