common/home/spacemacs/user-config.el

123 lines
3.3 KiB
EmacsLisp
Raw Normal View History

;; Spacemacs itself
(exec-path-from-shell-initialize)
;; Typing
(setq evil-indent-convert-tabs nil)
(setq-default indent-tabs-mode t)
(setq-default tab-width 2)
;; Key Bindings
(evil-ex-define-cmd "q" 'kill-this-buffer)
(evil-ex-define-cmd "quit" 'evil-quit)
;; Auto save upon defocus
(add-hook 'focus-out-hook
(defun save-current-buffer-if-needed ()
(interactive)
(when (and (buffer-file-name) (buffer-modified-p))
(save-buffer))))
;; Display
(spacemacs/toggle-whitespace-globally-on)
(setq whitespace-display-mappings
;; all numbers are Unicode codepoint in decimal. ⁖ (insert-char 182 1)
'(
(space-mark 32 [183] [46]) ; 32 SPACE 「 」, 183 MIDDLE DOT 「·」, 46 FULL STOP 「.」
(newline-mark 10 [172 10]) ; 10 LINE FEED, 172 Not Sign「¬」
(tab-mark 9 [10141 9] [92 9]) ; 9 TAB, 10141 Triangle-headed rightwards arrow 「➝」
))
(set-face-attribute 'whitespace-space nil
:background nil
:foreground "gray30")
(set-face-attribute 'whitespace-space-after-tab nil
:background nil
:foreground "gray30")
(set-face-attribute 'whitespace-tab nil
:background nil
:foreground "gray30")
(set-face-attribute 'whitespace-newline nil
:background nil
:foreground "gray30")
(set-face-attribute 'whitespace-line nil
:background "gray20"
:foreground nil)
;; Disabling this since we use smart indenting
(set-face-attribute 'whitespace-indentation nil
:background nil
:foreground "gray30")
;; Syntax highlighting
(set-face-attribute 'font-lock-type-face nil
:foreground "#55fe55")
(set-face-attribute 'font-lock-constant-face nil
:foreground "#ecbd3d")
(spacemacs/enable-transparency)
;; Org mode
(setq org-format-latex-options (plist-put org-format-latex-options :scale 2.0))
;; Spellchecking
(setq ispell-dictionary "english")
;; Centaur
(setq
centaur-tabs-set-icons t
centaur-tabs-set-bar 'over
centaur-tabs-set-close-button t
centaur-tabs-style "wave"
centaur-tabs-set-bar 'under
centaur-tabs-set-modified-marker t
centaur-tabs-modified-marker "*"
centaur-tabs-cycle-scope 'tabs)
(setq
pdf-sync-backward-display-action t
pdf-sync-forward-display-action t)
;; Ensures the pdf view mode doesn't get into emacs state.
;; If it does get into emacs state, checked by
;; (describe-variable 'evil-state)
;; Use M-x evil-normal-state or M-x evil-force-evilified-state to revert.
(evil-set-initial-state 'pdf-view-mode 'evilified)
;; Mixed indent mode (in conjunction with smart-tabs-mode)
(setq css-indent-offset 2)
(smart-tabs-insinuate
'c
'c++
'java
'javascript)
(add-hook 'after-init-hook #'company-statistics-mode)
(add-hook 'text-mode-hook #'display-fill-column-indicator-mode)
(add-hook 'prog-mode-hook #'display-fill-column-indicator-mode)
(add-hook 'LaTeX-mode-hook
(lambda ()
(setq indent-tabs-mode t)))
;; C/C++
(setq
-default-style "stroustrup"
-basic-offset 2
lsp-clients-clangd-args
'("-j=4"
"--clang-tidy"
"--header-insertion=never"
"--pch-storage=memory"
))
(highlight-doxygen-global-mode 1)
(set-face-attribute 'highlight-doxygen-comment nil
:background nil
:slant 'italic)
;;(setq opam-share (substring (shell-command-to-string
;; "opam config var share 2> /dev/null") 0 -1))
;;(add-to-list 'load-path (concat opam-share "/emacs/site-lisp"))
;;(with-eval-after-load 'merlin
;; (setq merlin-command 'opam))
;;(require 'merlin)