X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;ds=sidebyside;f=emacs.d%2Fconfig.org;h=8116e5c0fb60decf5bceecad43f209090ad4a23e;hb=6afd7c49c4b359a7d4ffe4dd6c166a21bdbf982f;hp=1b85b4bc0614f28f152e612bc075cba0a573c053;hpb=4bbc4349e7156a609d2e707230708f4bdd2dbf76;p=dotfiles.git diff --git a/emacs.d/config.org b/emacs.d/config.org index 1b85b4b..8116e5c 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -144,13 +144,12 @@ Check out [[http://tapoueh.org/emacs/el-get.html][el-get]]. #+END_SRC * Color and Fonts Settings - ** highlight current line - #+BEGIN_SRC emacs-lisp :tangle yes :results silent - - (global-hl-line-mode) - + ;; (global-hl-line-mode) + ;; don't want high light current line in eshell/term mode + (add-hook 'prog-mode-hook 'hl-line-mode) + (add-hook 'text-mode-hook 'hl-line-mode) #+END_SRC ** Smart Comments @@ -349,7 +348,6 @@ clean mode line, Refer to [[https://www.masteringemacs.org/article/hiding-replac #+BEGIN_SRC emacs-lisp :tangle yes :results silent (defvar mode-line-cleaner-alist `((auto-complete-mode . " α") - (yas/minor-mode . " υ") (paredit-mode . " π") (eldoc-mode . "") (abbrev-mode . "") @@ -370,6 +368,7 @@ clean mode line, Refer to [[https://www.masteringemacs.org/article/hiding-replac (flyspell-mode . "") (irony-mode . "") (page-break-lines-mode . "") + (yas-minor-mode . "y") ;; Major modes (lisp-interaction-mode . "λ") (hi-lock-mode . "") @@ -1241,9 +1240,20 @@ I like [[https://github.com/coldnew/linum-relative][linum-relative]], just like #+END_SRC ** Multi-term +define =multi-term= mapping to disable some mapping which is used globally. #+BEGIN_SRC emacs-lisp :tangle yes :results silent (use-package multi-term :ensure t) + + (defun sd/term-mode-mapping () + (mapcar (lambda (map) + (define-key map (kbd "C-o") nil) + (define-key map (kbd "C-g") nil)) + (list term-mode-map + term-raw-map))) + + (with-eval-after-load 'multi-term + (sd/term-mode-mapping)) #+END_SRC ** ace-link @@ -1456,6 +1466,11 @@ brew install the-silver-searcher ;; (add-hook 'c++-mode-local-vars-hook #'sd/c++-mode-local-vars) #+END_SRC +** Table +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (add-hook 'text-mode-hook 'table-recognize) +#+END_SRC + * Dired ** Dired bindings =C-o= is defined as a global key for window operation, here unset it in dired mode @@ -1651,13 +1666,21 @@ here on Mac, just use "open" commands to pen =.pdf=, =.html= and image files #+END_SRC * Completion -company mode and company-statistics +** company mode and company-statistics #+BEGIN_SRC emacs-lisp :tangle yes :results silent (use-package company :ensure t :diminish company-mode :init (setq company-idle-delay 0.1) + (setq company-selection-wrap-around t) :config + (define-key company-active-map (kbd "M-n") nil) + (define-key company-active-map (kbd "M-p") nil) + (define-key company-active-map (kbd "C-n") #'company-select-next) + (define-key company-active-map (kbd "C-p") #'company-select-previous) + ;; should map both (kbd "TAB") and [tab],https://github.com/company-mode/company-mode/issues/75 + (define-key company-active-map (kbd "TAB") #'company-complete-selection) + (define-key company-active-map [tab] #'company-complete-selection) (global-company-mode)) (use-package company-statistics @@ -1780,12 +1803,14 @@ C/C++ ide tools #+BEGIN_SRC emacs-lisp :tangle yes :results silent (setq c-default-style "stroustrup" c-basic-offset 4) -#+END_SRC -*** flycheck -#+BEGIN_SRC emacs-lisp :tangle yes :results silent - (use-package flycheck - :ensure t) + ;; "C-M-j" is my global binding for avy goto line below + ;; disable it in c mode + (mapcar '(lambda (map) + (define-key map (kbd "C-M-j") nil)) + (list c-mode-map + c++-mode-map + objc-mode-map)) #+END_SRC *** irony @@ -1863,24 +1888,10 @@ irony-company (add-hook 'flycheck-mode-hook #'flycheck-irony-setup)) #+END_SRC -*** gtags +*** flycheck #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (use-package ggtags + (use-package flycheck :ensure t) - - (add-hook 'c-mode-common-hook - (lambda () - (when (derived-mode-p 'c-mode 'c++-mode 'java-mode) - (ggtags-mode 1)))) - - (require 'cc-mode) - (require 'semantic) - - (global-semanticdb-minor-mode 1) - (global-semantic-idle-scheduler-mode 1) - - (semantic-mode 1) - #+END_SRC *** yasnippet @@ -1894,8 +1905,33 @@ irony-company (yas-reload-all)) #+END_SRC -*** semantic +*** gtags #+BEGIN_SRC emacs-lisp :tangle yes :results silent + (use-package ggtags + :ensure t + :config + (define-key ggtags-mode-map (kbd "M-g d") 'ggtags-find-definition) + (define-key ggtags-mode-map (kbd "M-g r") 'ggtags-find-reference) + (define-key ggtags-mode-map (kbd "M-g r") 'ggtags-find-reference) + (define-key ggtags-mode-map (kbd "C-c g s") 'ggtags-find-other-symbol) + (define-key ggtags-mode-map (kbd "C-c g h") 'ggtags-view-tag-history) + (define-key ggtags-mode-map (kbd "C-c g r") 'ggtags-find-reference) + (define-key ggtags-mode-map (kbd "C-c g f") 'ggtags-find-file) + (define-key ggtags-mode-map (kbd "C-c g c") 'ggtags-create-tags) + (define-key ggtags-mode-map (kbd "C-c g u") 'ggtags-update-tags)) + + (add-hook 'c-mode-common-hook + (lambda () + (when (derived-mode-p 'c-mode 'c++-mode 'java-mode) + (ggtags-mode 1)))) + + (require 'cc-mode) + (require 'semantic) + + (global-semanticdb-minor-mode 1) + (global-semantic-idle-scheduler-mode 1) + + (semantic-mode 1) #+END_SRC @@ -1931,6 +1967,8 @@ Set the environments vairables in compilation mode (define-key compilation-mode-map (kbd "n") 'compilation-next-error) (define-key compilation-mode-map (kbd "p") 'compilation-previous-error) (define-key compilation-mode-map (kbd "r") #'recompile)) + + (global-set-key (kbd "s-r") 'compile) #+END_SRC * Auto-Insert @@ -2523,6 +2561,7 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del ;; other special buffers ("d" sd/project-or-dired-jump nil :exit t) ("b" ibuffer nil :exit t) + ("t" multi-term nil :exit t) ("e" sd/toggle-project-eshell nil :exit t) ("m" bookmark-jump-other-window nil :exit t) ("M" bookmark-set nil :exit t) @@ -2968,6 +3007,18 @@ stolen from [[https://github.com/mariolong/emacs.d/blob/f6a061594ef1b5d1f4750e9d #+END_SRC *** TODO make expand-region hydra work with lispy selected +** =C-w= delete backward word +Refer [[https://github.com/fnwiya/dotfiles/blob/c9ca79f1b22c919d9f4c3a0f944ba8281255a594/setup/.emacs.d/loader-init/_90-kill-region-or-backward-kill-word.el][kill-region-or-backward-kill-word]] +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (defun sd/kill-region-or-backward-kill-word () + (interactive) + (if (region-active-p) + (kill-region (point) (mark)) + (backward-kill-word 1))) + + (global-set-key (kbd "C-w") 'sd/kill-region-or-backward-kill-word) +#+END_SRC + * key - passion - vision