Compare commits

...
2 Commits
2 changed files with 71 additions and 24 deletions
+34 -12
View File
@@ -21,6 +21,20 @@
;; Optional: Start the Emacs server if not already running ;; Optional: Start the Emacs server if not already running
(unless (server-running-p) (server-start))) (unless (server-running-p) (server-start)))
(setq claude-code-terminal-backend 'vterm)
(setq claude-code-optimize-window-resize t)
(setq claude-code-no-delete-other-windows t)
(setq claude-code-toggle-auto-select t)
(with-eval-after-load 'claude-code
(add-to-list 'display-buffer-alist
'((lambda (buffer-or-name _)
(string-prefix-p "*claude:" (buffer-name (get-buffer buffer-or-name))))
(display-buffer-reuse-window display-buffer-in-side-window)
(side . right)
(slot . 1) ;; Optional: keeps it separate from vterm if both are open
(window-width . 0.4))))
(use-package company (use-package company
:defer 2 :defer 2
:diminish :diminish
@@ -301,6 +315,13 @@
"b S" '(save-some-buffers :wk "Save multiple buffers") "b S" '(save-some-buffers :wk "Save multiple buffers")
"b w" '(bookmark-save :wk "Save current bookmarks to bookmark file")) "b w" '(bookmark-save :wk "Save current bookmarks to bookmark file"))
(dt/leader-keys
"c" '(:ignore t :wk "Claude")
"c c" '(claude-code :wk "Start claude in a vterm")
"c k" '(claude-code-kill :wk "Kill claude process and its window")
"c K" '(claude-code-kill-all :wk "Kill all claude processes across all directories")
"c t" '(claude-code-transient :wk "Claude command menu"))
(dt/leader-keys (dt/leader-keys
"d" '(:ignore t :wk "Dired") "d" '(:ignore t :wk "Dired")
"d d" '(dired :wk "Open dired") "d d" '(dired :wk "Open dired")
@@ -762,6 +783,8 @@
(setq shell-file-name "/bin/sh" (setq shell-file-name "/bin/sh"
vterm-max-scrollback 5000)) vterm-max-scrollback 5000))
(add-hook 'vterm-mode-hook (lambda () (display-line-numbers-mode -1)))
(use-package vterm-toggle (use-package vterm-toggle
:ensure t :ensure t
:after vterm :after vterm
@@ -770,20 +793,19 @@
;; kills the program as it would in most standard terminal programs. ;; kills the program as it would in most standard terminal programs.
(evil-define-key 'normal vterm-mode-map (kbd "<escape>") 'vterm--self-insert) (evil-define-key 'normal vterm-mode-map (kbd "<escape>") 'vterm--self-insert)
(setq vterm-toggle-fullscreen-p nil) (setq vterm-toggle-fullscreen-p nil)
(setq vterm-toggle-scope 'project) (setq vterm-toggle-scope 'project))
(with-eval-after-load 'vterm
(add-to-list 'display-buffer-alist (add-to-list 'display-buffer-alist
'((lambda (buffer-or-name _) '((lambda (buffer-or-name _)
(let ((buffer (get-buffer buffer-or-name))) (let ((buffer (get-buffer buffer-or-name)))
(with-current-buffer buffer (with-current-buffer buffer
(or (equal major-mode 'vterm-mode) (or (equal major-mode 'vterm-mode)
(string-prefix-p vterm-buffer-name (buffer-name buffer)))))) (string-prefix-p vterm-buffer-name (buffer-name buffer))))))
(display-buffer-reuse-window display-buffer-at-bottom) (display-buffer-reuse-window display-buffer-in-side-window)
;;(display-buffer-reuse-window display-buffer-in-direction) (side . right)
;;display-buffer-in-direction/direction/dedicated is added in emacs27 (reusable-frames . visible)
;;(direction . bottom) (window-width . 0.4))))
;;(dedicated . t) ;dedicated is supported in emacs27
(reusable-frames . visible)
(window-height . 0.4))))
(use-package sudo-edit) (use-package sudo-edit)
+37 -12
View File
@@ -100,6 +100,8 @@ By default, Emacs creates automatic backups of files in their original directori
#+end_src #+end_src
* CLAUDE-CODE * CLAUDE-CODE
[[https://github.com/stevemolitor/claude-code.el][Claude-code.el]] is an Emacs interface for Claude Code CLI, providing integration between Emacs and Claude AI for coding assistance.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package claude-code (use-package claude-code
:ensure (claude-code :host github :repo "stevemolitor/claude-code.el") :ensure (claude-code :host github :repo "stevemolitor/claude-code.el")
@@ -108,6 +110,20 @@ By default, Emacs creates automatic backups of files in their original directori
;; Optional: Start the Emacs server if not already running ;; Optional: Start the Emacs server if not already running
(unless (server-running-p) (server-start))) (unless (server-running-p) (server-start)))
(setq claude-code-terminal-backend 'vterm)
(setq claude-code-optimize-window-resize t)
(setq claude-code-no-delete-other-windows t)
(setq claude-code-toggle-auto-select t)
(with-eval-after-load 'claude-code
(add-to-list 'display-buffer-alist
'((lambda (buffer-or-name _)
(string-prefix-p "*claude:" (buffer-name (get-buffer buffer-or-name))))
(display-buffer-reuse-window display-buffer-in-side-window)
(side . right)
(slot . 1) ;; Optional: keeps it separate from vterm if both are open
(window-width . 0.4))))
#+end_src #+end_src
* COMPANY * COMPANY
@@ -471,6 +487,13 @@ mouse wheel for zooming in/out.
"b S" '(save-some-buffers :wk "Save multiple buffers") "b S" '(save-some-buffers :wk "Save multiple buffers")
"b w" '(bookmark-save :wk "Save current bookmarks to bookmark file")) "b w" '(bookmark-save :wk "Save current bookmarks to bookmark file"))
(dt/leader-keys
"c" '(:ignore t :wk "Claude")
"c c" '(claude-code :wk "Start claude in a vterm")
"c k" '(claude-code-kill :wk "Kill claude process and its window")
"c K" '(claude-code-kill-all :wk "Kill all claude processes across all directories")
"c t" '(claude-code-transient :wk "Claude command menu"))
(dt/leader-keys (dt/leader-keys
"d" '(:ignore t :wk "Dired") "d" '(:ignore t :wk "Dired")
"d d" '(dired :wk "Open dired") "d d" '(dired :wk "Open dired")
@@ -1088,6 +1111,9 @@ Vterm is a terminal emulator within Emacs. The 'shell-file-name' setting sets t
:config :config
(setq shell-file-name "/bin/sh" (setq shell-file-name "/bin/sh"
vterm-max-scrollback 5000)) vterm-max-scrollback 5000))
(add-hook 'vterm-mode-hook (lambda () (display-line-numbers-mode -1)))
#+end_src #+end_src
** Vterm-Toggle ** Vterm-Toggle
@@ -1102,20 +1128,19 @@ Vterm is a terminal emulator within Emacs. The 'shell-file-name' setting sets t
;; kills the program as it would in most standard terminal programs. ;; kills the program as it would in most standard terminal programs.
(evil-define-key 'normal vterm-mode-map (kbd "<escape>") 'vterm--self-insert) (evil-define-key 'normal vterm-mode-map (kbd "<escape>") 'vterm--self-insert)
(setq vterm-toggle-fullscreen-p nil) (setq vterm-toggle-fullscreen-p nil)
(setq vterm-toggle-scope 'project) (setq vterm-toggle-scope 'project))
(with-eval-after-load 'vterm
(add-to-list 'display-buffer-alist (add-to-list 'display-buffer-alist
'((lambda (buffer-or-name _) '((lambda (buffer-or-name _)
(let ((buffer (get-buffer buffer-or-name))) (let ((buffer (get-buffer buffer-or-name)))
(with-current-buffer buffer (with-current-buffer buffer
(or (equal major-mode 'vterm-mode) (or (equal major-mode 'vterm-mode)
(string-prefix-p vterm-buffer-name (buffer-name buffer)))))) (string-prefix-p vterm-buffer-name (buffer-name buffer))))))
(display-buffer-reuse-window display-buffer-at-bottom) (display-buffer-reuse-window display-buffer-in-side-window)
;;(display-buffer-reuse-window display-buffer-in-direction) (side . right)
;;display-buffer-in-direction/direction/dedicated is added in emacs27 (reusable-frames . visible)
;;(direction . bottom) (window-width . 0.4))))
;;(dedicated . t) ;dedicated is supported in emacs27
(reusable-frames . visible)
(window-height . 0.4))))
#+end_src #+end_src