diff --git a/init.el b/init.el index 252e956..552ab32 100644 --- a/init.el +++ b/init.el @@ -268,15 +268,57 @@ (use-package multi-vterm :ensure t) (use-package multi-vterm - :ensure t - :config - (add-hook 'vterm-mode-hook - (lambda () - ;; Disable evil-mode in vterm - (evil-emacs-state)))) + :ensure t + :config + (add-hook 'vterm-mode-hook + (lambda () + (setq-local evil-insert-state-cursor 'box) + (evil-insert-state))) + (define-key vterm-mode-map [return] #'vterm-send-return) + (setq vterm-keymap-exceptions nil) + (evil-define-key 'insert vterm-mode-map (kbd "C-e") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-f") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-a") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-v") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-b") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-w") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-u") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-d") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-n") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-m") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-p") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-j") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-k") #'Vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-r") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-t") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-g") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-c") #'vterm--self-insert) + (evil-define-key 'insert vterm-mode-map (kbd "C-SPC") #'vterm--self-insert) + (evil-define-key 'normal vterm-mode-map (kbd "C-d") #'vterm--self-insert) + (evil-define-key 'normal vterm-mode-map (kbd ",c") #'multi-vterm) + (evil-define-key 'normal vterm-mode-map (kbd ",n") #'multi-vterm-next) + (evil-define-key 'normal vterm-mode-map (kbd ",p") #'multi-vterm-prev) + (evil-define-key 'normal vterm-mode-map (kbd "i") #'evil-insert-resume) + (evil-define-key 'normal vterm-mode-map (kbd "o") #'evil-insert-resume) + (evil-define-key 'normal vterm-mode-map (kbd "") #'evil-insert-resume)) (use-package orderless :ensure t :custom (completion-styles '(orderless basic)) (completion-category-overrides '((file (styles basic partial-completion))))) + +(use-package gptel + :ensure t + :config + (setq gptel-api-key "sk-proj-uk1aiEdBmPThYf3XIXzyT3BlbkFJVjKC2dDapa5MsttCsnTv")) + +;; Install and configure chatgpt-shell +(use-package chatgpt-shell + :ensure t + :config + ;; Set your OpenAI API key here + (setq chatgpt-shell-api-key "sk-proj-uk1aiEdBmPThYf3XIXzyT3BlbkFJVjKC2dDapa5MsttCsnTv")) + +;; Optional: Bind chatgpt-shell to a key for quick access +(global-set-key (kbd "C-c C-g") 'chatgpt-shell)