diff --git a/init.el b/init.el index e953422..2898fcf 100644 --- a/init.el +++ b/init.el @@ -39,4 +39,5 @@ (require 'init-typst) (require 'init-cc) (require 'init-python) +(require 'init-haskell) (require 'init-rust) diff --git a/lisp/init-better-default.el b/lisp/init-better-default.el index 98de136..72e917a 100644 --- a/lisp/init-better-default.el +++ b/lisp/init-better-default.el @@ -10,12 +10,20 @@ (setq custom-file (expand-file-name "~/.emacs.d/custom.el")) (load custom-file 'no-error 'no-message) (setq use-short-answers t) +(setq frame-title-format "Emacs: %b") +(define-key global-map (kbd "C-") nil) +(define-key global-map (kbd "C-") nil) +(global-set-key (kbd "s-a") 'mark-whole-buffer) ;;对应Windows上面的Ctrl-a 全选 +(global-set-key (kbd "s-c") 'kill-ring-save) ;;对应Windows上面的Ctrl-c 复制 +(global-set-key (kbd "s-s") 'save-buffer) ;; 对应Windows上面的Ctrl-s 保存 +(global-set-key (kbd "s-v") 'yank) ;对应Windows上面的Ctrl-v 粘贴 +(global-set-key (kbd "s-z") 'undo) ;对应Windows上面的Ctrol-z 撤销 (setq kill-ring-max 200) - ;; Save clipboard contents into kill-ring before replace them (setq save-interprogram-paste-before-kill t) + ;; Kill & Mark things easily (use-package easy-kill :bind (([remap kill-ring-save] . easy-kill) @@ -27,12 +35,6 @@ :init (setq browse-kill-ring-separator "────────────────" browse-kill-ring-separator-face 'shadow)) -(global-set-key (kbd "s-a") 'mark-whole-buffer) ;;对应Windows上面的Ctrl-a 全选 -(global-set-key (kbd "s-c") 'kill-ring-save) ;;对应Windows上面的Ctrl-c 复制 -(global-set-key (kbd "s-s") 'save-buffer) ;; 对应Windows上面的Ctrl-s 保存 -(global-set-key (kbd "s-v") 'yank) ;对应Windows上面的Ctrl-v 粘贴 -(global-set-key (kbd "s-z") 'undo) ;对应Windows上面的Ctrol-z 撤销 - (use-package exec-path-from-shell :init (when (memq window-system '(mac ns x)) diff --git a/lisp/init-cc.el b/lisp/init-cc.el index 98caca0..79aadcf 100644 --- a/lisp/init-cc.el +++ b/lisp/init-cc.el @@ -7,7 +7,7 @@ (when (treesit-available-p) (use-package c-ts-mode :ensure nil - :functions centaur-treesit-available-p + :functions treesit-available-p :init (setq c-ts-mode-indent-offset 2) diff --git a/lisp/init-coding.el b/lisp/init-coding.el index 82a6565..f2e977d 100644 --- a/lisp/init-coding.el +++ b/lisp/init-coding.el @@ -39,6 +39,8 @@ (add-to-list 'eglot-server-programs '(fish-mode . ("fish-lsp" "start"))))) +(use-package docker-compose-mode) + (use-package leetcode) (provide 'init-coding) diff --git a/lisp/init-completion.el b/lisp/init-completion.el index 78c74f4..7d32ef6 100644 --- a/lisp/init-completion.el +++ b/lisp/init-completion.el @@ -226,11 +226,10 @@ (advice-add 'eglot-completion-at-point :around #'cape-wrap-nonexclusive) (advice-add 'pcomplete-completions-at-point :around #'cape-wrap-nonexclusive)) -(use-package yasnippet-capf - :after cape - :config - (add-to-list 'completion-at-point-functions #'yasnippet-capf)) - +;; (use-package yasnippet-capf +;; :after cape +;; :config +;; (add-to-list 'completion-at-point-functions #'yasnippet-capf)) (provide 'init-completion) diff --git a/lisp/init-haskell.el b/lisp/init-haskell.el new file mode 100644 index 0000000..ee44097 --- /dev/null +++ b/lisp/init-haskell.el @@ -0,0 +1,17 @@ +;; -*- lexical-binding: t; -*- + + +(use-package haskell-mode + :hook (haskell-mode . haskell-collapse-mode) + :hook (haskell-mode . interactive-haskell-mode) + :mode (("\\.hs\\'" . haskell-mode)) + :config + (setq haskell-process-suggest-remove-import-lines t + haskell-process-auto-import-loaded-modules t) + (add-hook 'haskell-mode-local-vars-hook #'lsp! 'append) + (add-hook 'haskell-literate-mode-local-vars-hook #'lsp! 'append) + (add-to-list 'completion-ignored-extensions ".hi") + ) + + +(provide 'init-haskell) diff --git a/lisp/init-ui.el b/lisp/init-ui.el index 6c6358c..50762ce 100644 --- a/lisp/init-ui.el +++ b/lisp/init-ui.el @@ -120,4 +120,8 @@ ;; but you can use any other Nerd Font if you want (nerd-icons-font-family "Symbols Nerd Font Mono")) +(use-package nerd-icons-ibuffer + :ensure t + :hook (ibuffer-mode-hook . nerd-icons-ibuffer-mode)) + (provide 'init-ui)