Commit 8f28c1dee82a
Changed files (1)
tools
emacs
config
tools/emacs/config/config-projects.el
@@ -5,6 +5,35 @@
;;; Note: this file is autogenerated from an org-mode file.
;;; Code:
+
+(use-package project
+ :bind (("C-x p v" . vde-project-magit-status)
+ ("C-x p s" . vde-project-vterm))
+ :init
+ (defun vde-project-magit-status ()
+ "Run `magit-status' on project."
+ (interactive)
+ (let* ((pr (project-current t))
+ (dir (cdr pr)))
+ (magit-status dir)))
+
+ (defun vde-project-vterm ()
+ "Run `vterm' on project.
+If a buffer already exists for running a vterm shell in the project's root,
+switch to it. Otherwise, create a new vterm shell."
+ (interactive)
+ (let* ((default-directory (project-root (project-current t)))
+ (default-project-vterm-name (project-prefixed-buffer-name "vterm"))
+ (vterm-buffer (get-buffer default-project-vterm-name)))
+ (if (and vterm-buffer (not current-prefix-arg))
+ (pop-to-buffer-same-window vterm-buffer)
+ (let* ((cd-cmd (concat " cd " (shell-quote-argument default-directory))))
+ (vterm vterm-buffer)
+ (with-current-buffer vterm-buffer
+ (vterm-send-string cd-cmd)
+ (vterm-send-return))))))
+ )
+
(use-package projectile
:unless noninteractive
:commands