From 1a1c8707ce5157e600d77840cffa02af27f6df50 Mon Sep 17 00:00:00 2001 From: js0ny Date: Sun, 9 Feb 2025 15:00:20 +0000 Subject: [PATCH] fix(emacs): Fix some keymaps --- tools/doom/config.el | 37 ++++-------------------- tools/doom/custom.el | 3 +- tools/doom/evil.el | 15 ++++++++++ tools/doom/init.el | 4 +-- tools/doom/keymaps.el | 30 -------------------- tools/doom/org.el | 64 +++++++++++++++++++++++++++--------------- tools/doom/treemacs.el | 23 +++++++++++++++ 7 files changed, 89 insertions(+), 87 deletions(-) create mode 100644 tools/doom/evil.el delete mode 100644 tools/doom/keymaps.el create mode 100644 tools/doom/treemacs.el diff --git a/tools/doom/config.el b/tools/doom/config.el index 0b50ee9..be0a9f3 100644 --- a/tools/doom/config.el +++ b/tools/doom/config.el @@ -22,7 +22,7 @@ ;; accept. For example: ;; (setq doom-font (font-spec :family "Iosevka Nerd Font Propo" :size 14 :weight 'semi-light) - doom-variable-pitch-font (font-spec :family "JetBrainsMono Nerd Font" :size 13)) + doom-variable-pitch-font (font-spec :family "JetBrainsMono Nerd Font" :size 13)) ;; ;; If you or Emacs can't find your font, use 'M-x describe-font' to look them ;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to @@ -40,10 +40,6 @@ (setq display-line-numbers-type 'relative) -;; If you use `org' and don't want your org files in the default location below, -;; change `org-directory'. It must be set before org loads! -(setq org-directory "~/OrgFiles/") -(setq org-roam-directory "~/OrgFiles/roam/") ;; Whenever you reconfigure a package, make sure to wrap your config in an @@ -78,35 +74,12 @@ ;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how ;; they are implemented. -(load! "keymaps.el") - - - -(after! treemacs - (map! :map evil-treemacs-state-map - ;; 导航 - "n" #'treemacs-next-line - "e" #'treemacs-previous-line - "N" #'treemacs-next-neighbour - "E" #'treemacs-previous-neighbour - "H" #'treemacs-toggle-show-dotfiles - "I" #'treemacs-hide-gitignored-files-mode - "i" #'treemacs-RET-action - "a" #'treemacs-create-file - "A" #'treemacs-create-dir - "c" #'treemacs-copy-file - "d" #'treemacs-delete-file - "r" #'treemacs-rename-file - "q" #'treemacs-quit - "y" #'treemacs-copy-relative-path-at-point - "Y" #'treemacs-copy-absolute-path-at-point - "m" #'treemacs-mark-or-unmark-path-at-point - )) - - (after! wakatime-mode (global-wakatime-mode) - (setq wakatime-cli-path "~/.local/bin/wakatime")) + (setq wakatime-cli-path "~/.local/bin/wakatime")) +(load! "evil.el") + +(load! "treemacs.el") (load! "org.el") diff --git a/tools/doom/custom.el b/tools/doom/custom.el index 17521e7..015f9e7 100644 --- a/tools/doom/custom.el +++ b/tools/doom/custom.el @@ -4,7 +4,7 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(custom-safe-themes - '("3c08da65265d80a7c8fc99fe51df3697d0fa6786a58a477a1b22887b4f116f62" "df6dfd55673f40364b1970440f0b0cb8ba7149282cf415b81aaad2d98b0f0290" "0325a6b5eea7e5febae709dab35ec8648908af12cf2d2b569bedc8da0a3a81c1" "d6b934330450d9de1112cbb7617eaf929244d192c4ffb1b9e6b63ad574784aad" "56044c5a9cc45b6ec45c0eb28df100d3f0a576f18eef33ff8ff5d32bac2d9700" "2b501400e19b1dd09d8b3708cefcb5227fda580754051a24e8abf3aff0601f87" default))) + '("e4a702e262c3e3501dfe25091621fe12cd63c7845221687e36a79e17cf3a67e0" "456697e914823ee45365b843c89fbc79191fdbaff471b29aad9dcbe0ee1d5641" "3c08da65265d80a7c8fc99fe51df3697d0fa6786a58a477a1b22887b4f116f62" "df6dfd55673f40364b1970440f0b0cb8ba7149282cf415b81aaad2d98b0f0290" "0325a6b5eea7e5febae709dab35ec8648908af12cf2d2b569bedc8da0a3a81c1" "d6b934330450d9de1112cbb7617eaf929244d192c4ffb1b9e6b63ad574784aad" "56044c5a9cc45b6ec45c0eb28df100d3f0a576f18eef33ff8ff5d32bac2d9700" "2b501400e19b1dd09d8b3708cefcb5227fda580754051a24e8abf3aff0601f87" default))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. @@ -12,3 +12,4 @@ ;; If there is more than one, they won't work right. '(org-verbatim ((t (:foreground "orange"))))) (put 'customize-face 'disabled nil) +(put 'customize-variable 'disabled nil) diff --git a/tools/doom/evil.el b/tools/doom/evil.el new file mode 100644 index 0000000..cadf9e2 --- /dev/null +++ b/tools/doom/evil.el @@ -0,0 +1,15 @@ +(map! + :nvm "l" 'evil-insert + :nvm "L" 'evil-insert-line + :nvm "k" 'evil-ex-search-next + :nvm "K" 'evil-ex-search-previous + :nvom "j" 'evil-forward-word-end + :nvom "J" 'evil-forward-WORD-end + :nvom "n" 'evil-next-line + :nvom "e" 'evil-previous-line + :nvom "i" 'evil-forward-char + :nv "H" 'evil-prev-buffer + :nv "I" 'evil-next-buffer + :nvom "N" '(lambda () (interactive) (evil-next-line 5)) ; 5n + :nvom "E" '(lambda () (interactive) (evil-previous-line 5)) ; 5e + ) diff --git a/tools/doom/init.el b/tools/doom/init.el index 2ebd07d..339df31 100644 --- a/tools/doom/init.el +++ b/tools/doom/init.el @@ -56,10 +56,10 @@ (evil +everywhere); come to the dark side, we have cookies file-templates ; auto-snippets for empty files fold ; (nigh) universal code folding - ;;(format +onsave) ; automated prettiness + (format +onsave) ; automated prettiness ;;god ; run Emacs commands without modifier keys ;;lispy ; vim for lisp, for people who don't like vim - ;;multiple-cursors ; editing in many places at once + multiple-cursors ; editing in many places at once ;;objed ; text object editing for the innocent ;;parinfer ; turn lisp into python, sort of ;;rotate-text ; cycle region at point between text candidates diff --git a/tools/doom/keymaps.el b/tools/doom/keymaps.el deleted file mode 100644 index a1b322e..0000000 --- a/tools/doom/keymaps.el +++ /dev/null @@ -1,30 +0,0 @@ -(map! :nv "l" 'evil-insert - :nv "L" 'evil-insert-line - :nv "k" 'evil-ex-search-next - :nv "K" 'evil-ex-search-previous - :nv "n" 'evil-next-line - :nv "e" 'evil-previous-line - :nv "i" 'evil-forward-char - ) - -(evil-define-key '(normal visual operator) 'global - ;; To see the keybindings, use k then type the key - "n" 'evil-next-line - "e" 'evil-previous-line - "i" 'evil-forward-char - "l" 'evil-insert - "L" 'evil-insert-0-line - "k" 'evil-search-next - "K" 'evil-search-previous - "j" 'evil-forward-word-end - "J" 'evil-forward-WORD-end - "N" '(lambda () (interactive) (evil-next-line 5)) ; 5n - "E" '(lambda () (interactive) (evil-previous-line 5)) ; 5e - "H" 'switch-to-prev-buffer - "I" 'switch-to-next-buffer - ) - -;; (evil-define-key evil-org-mode-map (kbd "I") 'evil-prev-buffer) -;; - -(evil-define-key '(normal visual operator) evil-org-mode-map (kbd "I") 'evil-next-buffer) diff --git a/tools/doom/org.el b/tools/doom/org.el index bcaed74..53ea48d 100644 --- a/tools/doom/org.el +++ b/tools/doom/org.el @@ -1,37 +1,57 @@ +;; If you use `org' and don't want your org files in the default location below, +;; change `org-directory'. It must be set before org loads! +(setq org-directory "~/OrgFiles/") +(setq org-roam-directory "~/OrgFiles/roam/") -;; For CJK users -;; Insert zero width space around the emphasis symbols, this might be useful for -;; languages that does not rely on space (after! org + ;; For CJK users + ;; Insert zero width space around the emphasis symbols, this might be useful for + ;; languages that does not rely on space (defun my/insert-emphasis-with-zws (char) (interactive "c") (insert ?\u200B char) (save-excursion (insert char ?\u200B))) + ;; Directory + (setq org-archive-location "~/OrgFiles/archive/%s_archive::") + (setq org-default-notes-file "~/OrgFiles/tasks/inbox.org") + + ;; Initial Visibility + (setq org-startup-folded "show2levels") + + + ;; Keymaps (map! :map org-mode-map "C-c b" (lambda () (interactive) (my/insert-emphasis-with-zws ?*)) "C-c i" (lambda () (interactive) (my/insert-emphasis-with-zws ?/)) - "C-c u" (lambda () (interactive) (my/insert-emphasis-with-zws ?_))) + "C-c u" (lambda () (interactive) (my/insert-emphasis-with-zws ?_)) + :nvom "N" 'org-next-visible-heading + :nvom "E" 'org-previous-visible-heading) + (setq org-capture-templates + '(("t" "Task" entry (file+headline "~/OrgFiles/tasks/inbox.org" "Tasks") + "* TODO %?\n %U\n %a\n %i" + :empty-lines 1))) + + ) + +(after! evil-org (map! :map evil-org-mode-map - :nv "I" #'evil-next-buffer) - - - (setq org-archive-location "~/OrgFiles/archive/%s_archive::") - (setq org-default-notes-file "~/OrgFiles/tasks/inbox.org") -(setq org-capture-templates - '(("t" "Task" entry (file+headline "~/OrgFiles/tasks/inbox.org" "Tasks") - "* TODO %?\n %U\n %a\n %i" - :empty-lines 1))) - ) - + :n "L" 'evil-org-insert-line + :n "I" 'evil-next-buffer + ) + ) (after! org-agenda - (map! :map evil-org-agenda-mode-map - :nv "n" #'org-agenda-next-line - :nv "e" #'org-agenda-previous-line - "gn" 'org-agenda-next-item - "ge" 'org-agenda-previous-item - :nv "i" #'evil-forward-char) (setq org-agenda-files (directory-files-recursively "~/OrgFiles/tasks/" "\\.org$")) - ) + ) + +(map! :after org-agenda + :map evil-org-agenda-mode-map + :m "n" #'org-agenda-next-line + :m "e" #'org-agenda-previous-line + :m "gn" #'org-agenda-next-item + :m "ge" #'org-agenda-previous-item + :m "N" #'org-agenda-priority-up + :m "E" #'org-agenda-priority-down + :m "i" #'evil-forward-char) diff --git a/tools/doom/treemacs.el b/tools/doom/treemacs.el new file mode 100644 index 0000000..49240b6 --- /dev/null +++ b/tools/doom/treemacs.el @@ -0,0 +1,23 @@ +(after! treemacs + (map! :map evil-treemacs-state-map + "n" #'treemacs-next-line + "e" #'treemacs-previous-line + "N" #'treemacs-next-neighbour + "E" #'treemacs-previous-neighbour + "H" #'treemacs-toggle-show-dotfiles + "I" #'treemacs-hide-gitignored-files-mode + "i" #'treemacs-RET-action + "a" #'treemacs-create-file + "A" #'treemacs-create-dir + "c" #'treemacs-copy-file + "d" #'treemacs-delete-file + "r" #'treemacs-rename-file + "q" #'treemacs-quit + "y" #'treemacs-copy-relative-path-at-point + "Y" #'treemacs-copy-absolute-path-at-point + "m" #'treemacs-mark-or-unmark-path-at-point + ) + ) + +(map! :leader + :desc "Toggle Treemacs" "f t" #'+treemacs/toggle)