diff --git a/lisp/init-completion.el b/lisp/init-completion.el index 845c983..3b0cf8d 100644 --- a/lisp/init-completion.el +++ b/lisp/init-completion.el @@ -6,7 +6,7 @@ :hook ((python-mode . eglot-ensure)) :config - (setq eglot-send-changes-idle-time 0.5)) + (setq eglot-send-changes-idle-time 0.25)) ;; corfu (use-package corfu diff --git a/lisp/init-kbd.el b/lisp/init-kbd.el index f1869d9..c0f53ae 100644 --- a/lisp/init-kbd.el +++ b/lisp/init-kbd.el @@ -53,6 +53,29 @@ (global-set-key (kbd "M-u") 'upcase-dwim) (global-set-key (kbd "M-l") 'downcase-dwim) +;; jinx相关 +(with-eval-after-load 'jinx + (defun my/jinx-smart-toggle () + "Toggle jinx-mode smartly. +Disable jinx-mode if it's enable and global-jinx-mode is disable , otherwise toggle global-jinx-mode." + (interactive) + (let ((local-on (bound-and-true-p jinx-mode)) + (global-on (bound-and-true-p global-jinx-mode))) + (cond + ((and local-on (not global-on)) + (message "disable jinx-mode in current buffer") + (jinx-mode -1)) + (t + (if global-on + (progn + (message "disable global-jinx-mode") + (global-jinx-mode -1)) + (progn + (message "enable global-jinx-mode") + (global-jinx-mode 1)))))))) + +(global-set-key (kbd "C-c j j") 'my/jinx-smart-toggle) + ;; pair编辑 (global-set-key (kbd "C-c p d") 'delete-pair) @@ -140,6 +163,12 @@ ;; popper (global-set-key (kbd "M-`") 'popper-toggle-latest) +(defun popper-toggle-type-delte-other-window() + (interactive) + (popper-toggle-type) + (delete-other-windows)) +(global-set-key (kbd "C-M-=") 'popper-toggle-type-delte-other-window) + ;; crux相关 (global-set-key (kbd "C-") 'crux-kill-line-backwards) ;; C-DEL kill line backwards (global-set-key (kbd "C-c k") 'comment-line) ;; 快速注释 @@ -193,7 +222,15 @@ ;; vterm (with-eval-after-load 'vterm - (define-key vterm-mode-map (kbd "M-]") nil)) + (define-key vterm-mode-map (kbd "M-]") nil) + (define-key vterm-mode-map (kbd "C-x C-x") 'vterm-send-C-x)) + +;; ;; eshell +(with-eval-after-load 'eshell + (define-key eshell-mode-map (kbd "M-n") nil) + (define-key eshell-mode-map (kbd "M-p") nil) + (define-key eshell-mode-map (kbd "M-{") 'eshell-previous-matching-input-from-input) + (define-key eshell-mode-map (kbd "M-}") 'eshell-next-matching-input-from-input)) ;; 打开目录 (defun consult-directory-externally (file) diff --git a/lisp/init-org.el b/lisp/init-org.el index 43777cf..c5f71e5 100644 --- a/lisp/init-org.el +++ b/lisp/init-org.el @@ -12,6 +12,20 @@ (lambda () (require 'org-checklist nil t))) +;; org-download +(use-package org-download + :config + (when *is-mac* + (setq org-download-image-dir "./images") + (unless (file-exists-p "./images") + (make-directory "./images" t)) + (setq org-download-link-format "[[file:%s]]\n") + (setq org-download-timestamp "%Y%m%d_%H%M%S_") + (setq org-download-dragndrop t) + (setq org-image-actual-width nil) + (setq org-download-image-html-width 600) + (add-hook 'org-mode-hook 'org-display-inline-images))) + ;; org-journal (use-package org-journal :config @@ -97,7 +111,15 @@ (add-hook 'org-mode-hook (lambda () (require 'org-tempo) - (org-indent-mode))) + (org-indent-mode) + (setq-local electric-pair-inhibit-predicate + (lambda (char) + (or (eq char ?<) + (electric-pair-default-inhibit char)))))) + +(with-eval-after-load 'org + (require 'org-download) + (setq org-return-follows-link t)) ;; 预加载,防止windows的org-mode加载卡顿 (if *is-windows* @@ -209,6 +231,11 @@ (org-table-map-tables 'org-table-align t))) ;; hugo + +;; 安装ox-hugo +(use-package ox-hugo) + + (with-eval-after-load 'org-capture (defun org-hugo-new-subtree-post-capture-template () "Returns `org-capture' template string for new Hugo post. diff --git a/lisp/init-package.el b/lisp/init-package.el index 164a29a..d12981e 100644 --- a/lisp/init-package.el +++ b/lisp/init-package.el @@ -119,15 +119,26 @@ (unless (eq ibuffer-sorting-mode 'alphabetic) (ibuffer-do-sort-by-alphabetic))))) +;; avy中文支持 (use-package ace-pinyin :init (ace-pinyin-global-mode +1)) -;; 安装ox-hugo -(use-package ox-hugo - :custom - (empv-mpv-args '("--force-window=immediate" - "--keep-open=yes" - "--fs=no"))) +;; jinx,拼写检查 +(use-package jinx + :hook (org-mode-hook . jinx-mode) + :bind ([remap ispell-word] . jinx-correct) + :config (setq jinx-languages "en_US") + (add-to-list 'jinx-exclude-regexps '(t "\\cc")) + (with-eval-after-load 'jinx + (dolist (range '((#x4E00 . #x9FFF) + (#x3400 . #x4DBF) + (#x3000 . #x303F) + (#xFF00 . #xFFEF) + (#x20000 . #x2A6DF))) + (let ((start (car range)) + (end (cdr range))) + (dotimes (i (- end start)) + (modify-syntax-entry (+ start i) "_" jinx--syntax-table)))))) ;; 安装emms (use-package emms diff --git a/lisp/init-startup.el b/lisp/init-startup.el index 403e308..2f7c3e1 100644 --- a/lisp/init-startup.el +++ b/lisp/init-startup.el @@ -56,8 +56,7 @@ ";; SCRATCH SCRATCH SCRATCH\n\n") ;; 开启server mode -(unless *is-mac* - (server-start)) +(server-start) ;; 窗口名 (setq-default frame-title-format '("%b - Emacs")) diff --git a/lisp/init-window.el b/lisp/init-window.el index 8768056..612bde3 100644 --- a/lisp/init-window.el +++ b/lisp/init-window.el @@ -24,6 +24,7 @@ "\\*Embark Export:.*\\*" "\\*Edit Annotation.*\\*" "\\*Flutter\\*" + "\\*Ibuffer\\*" bookmark-bmenu-mode lsp-bridge-ref-mode comint-mode