@@ -1336,6 +1336,34 @@ ref:https://github.com/manateelazycat/toggle-one-window
13361336 (vterm (generate-new-buffer-name default-project-shell-name)))))
13371337
13381338 (advice-add 'project-shell :override #'my-project-shell)
1339+
1340+
1341+ (defvar my-vterm-shells
1342+ '(("*vterm-pwsh*" . "pwsh.exe")
1343+ ("*vterm-ros2*" . "wsl.exe -d ubuntu --cd ~ -e bash -c -l \"source /opt/ros/jazzy/setup.bash && exec bash -l\""))
1344+ "Alist of (BUFFER-NAME . SHELL-COMMAND) for vterm shells.")
1345+
1346+ (defun my/vterm-select-or-create ()
1347+ "Select an existing vterm, or create one from a shell or custom name."
1348+ (interactive)
1349+ (let* ((existing-vterms
1350+ (mapcar #'buffer-name
1351+ (seq-filter (lambda (buf)
1352+ (with-current-buffer buf
1353+ (eq major-mode 'vterm-mode)))
1354+ (buffer-list))))
1355+ (shell-names (mapcar #'car my-vterm-shells))
1356+ (candidates (append shell-names existing-vterms))
1357+ (chosen (completing-read "VTerm (select or type new name): "
1358+ existing-vterms nil nil "")))
1359+ (when (string-empty-p chosen)
1360+ (setq chosen (completing-read "Select shells: " shell-names nil nil "")))
1361+
1362+ (if (get-buffer chosen)
1363+ (switch-to-buffer chosen)
1364+ (let ((vterm-shell (cdr (assoc chosen my-vterm-shells))))
1365+ (vterm chosen)))))
1366+
13391367 )
13401368#+end_src
13411369** fingertip 智能括号插入
@@ -2346,7 +2374,8 @@ ref:https://github.com/manateelazycat/toggle-one-window
23462374 (sass . t)
23472375 (C . t)
23482376 (java . t)
2349- (plantuml . t)))
2377+ (plantuml . t)
2378+ (sql . t)))
23502379 ;; C 执行支持 :stdin 数据
23512380 (defun my*org-babel-execute-add-stdin(args)
23522381 (let* ((body (nth 0 args))
@@ -2520,16 +2549,14 @@ ref:https://github.com/manateelazycat/toggle-one-window
25202549 (interactive "fImage file: ")
25212550 (let* ((blog-file-title (denote-retrieve-filename-title (buffer-file-name)))
25222551 (blog-image-dir (concat (expand-file-name blog-file-title my-blogs-image-dir) "/"))
2523- (blog-image-ext (concat "." (file-name-extension file)))
2524- (blog-default-image-title (concat blog-file-title (format-time-string "-%H%M%S")))
2525- (blog-image-title (read-string "Image title: " "" nil blog-default-image-title))
2526- (blog-image-new-name (denote-format-file-name blog-image-dir (denote-get-identifier) nil blog-image-title blog-image-ext nil)))
2527-
2552+ (blog-image-ext (concat "." (file-name-extension file)))
2553+ (blog-default-image-title (concat blog-file-title (format-time-string "-%H%M%S")))
2554+ (blog-image-title (read-string "Image title: " "" nil blog-default-image-title))
2555+ (blog-image-new-name (denote-format-file-name blog-image-dir (denote-retrieve-filename-identifier (buffer-file-name)) nil blog-image-title blog-image-ext nil)))
25282556 (unless (file-directory-p blog-image-dir)
25292557 (make-directory blog-image-dir t))
25302558 (copy-file file blog-image-new-name)
2531- (org-insert-link "" (concat "file:" blog-image-new-name) "")
2532- ))
2559+ (insert (format "[[file:%s]]" (file-relative-name blog-image-new-name (file-name-directory (buffer-file-name)))))))
25332560 (defun my-denote-blog-link-ol-export (link description format)
25342561 ""
25352562 (let* ((denote-directory my-blogs-org-dir)
0 commit comments