rearrange and add sections apart from subsections
This commit is contained in:
parent
e27e556924
commit
31c3075170
348
init.el
348
init.el
@ -19,6 +19,10 @@
|
|||||||
;;; next time.
|
;;; next time.
|
||||||
|
|
||||||
|
|
||||||
|
;;; Basic settings
|
||||||
|
;;; ==============
|
||||||
|
|
||||||
|
|
||||||
;;; Directory with local Emacs lisp files
|
;;; Directory with local Emacs lisp files
|
||||||
;;; -------------------------------------
|
;;; -------------------------------------
|
||||||
|
|
||||||
@ -70,6 +74,26 @@
|
|||||||
;;; `use-package` to work.
|
;;; `use-package` to work.
|
||||||
|
|
||||||
|
|
||||||
|
;;; Other settings
|
||||||
|
;;; --------------
|
||||||
|
|
||||||
|
(setq recentf-max-saved-items 100)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Workaround for security vulnerability in Emacs >= 21.1 and < 25.3
|
||||||
|
;;; -----------------------------------------------------------------
|
||||||
|
;;;
|
||||||
|
;;; See [Changes in Emacs 25.3](https://www.gnu.org/software/emacs/news/NEWS.25.3)
|
||||||
|
|
||||||
|
(eval-after-load "enriched"
|
||||||
|
'(defun enriched-decode-display-prop (start end &optional param)
|
||||||
|
(list start end)))
|
||||||
|
|
||||||
|
|
||||||
|
;;; Productivity
|
||||||
|
;;; ============
|
||||||
|
|
||||||
|
|
||||||
;;; More efficient buffer/file selection
|
;;; More efficient buffer/file selection
|
||||||
;;; ------------------------------------
|
;;; ------------------------------------
|
||||||
|
|
||||||
@ -153,7 +177,7 @@
|
|||||||
|
|
||||||
|
|
||||||
;;; Window selection enhancements
|
;;; Window selection enhancements
|
||||||
;;; ----------------------------------------------
|
;;; -----------------------------
|
||||||
|
|
||||||
|
|
||||||
(use-package ace-window
|
(use-package ace-window
|
||||||
@ -181,7 +205,7 @@
|
|||||||
:bind
|
:bind
|
||||||
("C-c b" . helm-spaces))
|
("C-c b" . helm-spaces))
|
||||||
|
|
||||||
;;; Allow for Undo/Redo of window manipulations (such as C-x 1)
|
;;; Allow for Undo/Redo of window manipulations (such as `C-x 1`)
|
||||||
|
|
||||||
(winner-mode 1)
|
(winner-mode 1)
|
||||||
|
|
||||||
@ -245,95 +269,8 @@
|
|||||||
("C-c p" . mc/mark-previous-like-this)))
|
("C-c p" . mc/mark-previous-like-this)))
|
||||||
|
|
||||||
|
|
||||||
;;; Appearance
|
|
||||||
;;; ----------
|
|
||||||
|
|
||||||
|
|
||||||
(setq inhibit-startup-screen t
|
|
||||||
ediff-window-setup-function #'ediff-setup-windows-plain)
|
|
||||||
(set-scroll-bar-mode 'right)
|
|
||||||
(menu-bar-mode 0)
|
|
||||||
(tool-bar-mode 0)
|
|
||||||
|
|
||||||
(defun set-frame-font-inconsolata (size &optional frames)
|
|
||||||
"Set font to Inconsolata:pixelsize=SIZE:antialias=true:autohint=false.
|
|
||||||
Argument FRAMES has the same meaning as for `set-frame-font'"
|
|
||||||
(interactive "n[Inconsolata] size: ")
|
|
||||||
(set-frame-font
|
|
||||||
(format "Inconsolata:pixelsize=%d:antialias=true:autohint=true" size)
|
|
||||||
nil frames))
|
|
||||||
|
|
||||||
(defun set-frame-font-go-mono (size &optional frames)
|
|
||||||
"Set font to Go mono:pixelsize=SIZE:antialias=true:autohint=false.
|
|
||||||
Argument FRAMES has the same meaning as for `set-frame-font'"
|
|
||||||
(interactive "n[Go mono] size: ")
|
|
||||||
(set-frame-font
|
|
||||||
(format "Go mono:pixelsize=%d:antialias=true:autohint=true" size)
|
|
||||||
nil frames))
|
|
||||||
|
|
||||||
;; my customization of used themes
|
|
||||||
|
|
||||||
(eval-after-load 'firebelly-theme
|
|
||||||
'(custom-theme-set-faces
|
|
||||||
'firebelly
|
|
||||||
'(font-lock-comment-delimiter-face ((t (:foreground "#505050"))))))
|
|
||||||
|
|
||||||
(eval-after-load 'nimbus-theme
|
|
||||||
'(custom-theme-set-faces
|
|
||||||
'nimbus
|
|
||||||
'(region ((t (:background "#505050"))))))
|
|
||||||
|
|
||||||
(use-package powerline
|
|
||||||
:ensure nil
|
|
||||||
:defer)
|
|
||||||
|
|
||||||
(use-package nimbus-theme
|
|
||||||
:ensure nil
|
|
||||||
:defer)
|
|
||||||
|
|
||||||
(use-package leuven-theme
|
|
||||||
:ensure nil
|
|
||||||
:defer)
|
|
||||||
|
|
||||||
;; easy switching between themes
|
|
||||||
(use-package helm-themes
|
|
||||||
:ensure nil
|
|
||||||
:bind
|
|
||||||
(("C-c T" . helm-themes))
|
|
||||||
:config
|
|
||||||
;; need to update powerline after changing theme
|
|
||||||
(advice-add 'helm-themes :after #'powerline-reset))
|
|
||||||
|
|
||||||
(defun my-make-frame-function(frame)
|
|
||||||
(if (not (featurep 'powerline))
|
|
||||||
(powerline-center-theme)))
|
|
||||||
|
|
||||||
(setq my-dark-theme 'nimbus
|
|
||||||
my-light-theme 'leuven)
|
|
||||||
|
|
||||||
(defun my-light-theme ()
|
|
||||||
"Switch to my light theme."
|
|
||||||
(interactive)
|
|
||||||
(mapc #'disable-theme custom-enabled-themes)
|
|
||||||
(when (load-theme my-light-theme)
|
|
||||||
(powerline-reset)))
|
|
||||||
|
|
||||||
(defun my-dark-theme ()
|
|
||||||
"Switch to my dark theme."
|
|
||||||
(interactive)
|
|
||||||
(mapc #'disable-theme custom-enabled-themes)
|
|
||||||
(when (load-theme my-dark-theme)
|
|
||||||
(powerline-reset)))
|
|
||||||
|
|
||||||
(when window-system
|
|
||||||
(my-make-frame-function (selected-frame)))
|
|
||||||
|
|
||||||
(add-hook 'after-make-frame-functions
|
|
||||||
#'my-make-frame-function)
|
|
||||||
|
|
||||||
|
|
||||||
;;; Convenience functions, aliases, and key bindings
|
;;; Convenience functions, aliases, and key bindings
|
||||||
;;; ---------------------------------
|
;;; ------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
;; Convenience functions and aliases
|
;; Convenience functions and aliases
|
||||||
@ -381,8 +318,42 @@ Argument FRAMES has the same meaning as for `set-frame-font'"
|
|||||||
git-messenger:use-magit-popup t))
|
git-messenger:use-magit-popup t))
|
||||||
|
|
||||||
|
|
||||||
;;; Using C/C++ under Emacs
|
;;; Switching buffers
|
||||||
;;; -----------------------
|
;;; -----------------
|
||||||
|
|
||||||
|
|
||||||
|
;;; Set keys from `s-s a` to `s-s z` to switch to buffers from a register from a to z
|
||||||
|
|
||||||
|
(defalias 'pr #'point-to-register)
|
||||||
|
|
||||||
|
(defun my-switch-to-register ()
|
||||||
|
"Switch to buffer given by a register named by last character
|
||||||
|
of the key binding used to execute this command."
|
||||||
|
(interactive)
|
||||||
|
(let* ((v (this-command-keys-vector))
|
||||||
|
(c (aref v (1- (length v))))
|
||||||
|
(r (get-register c)))
|
||||||
|
(if (and (markerp r) (marker-buffer r))
|
||||||
|
(switch-to-buffer (marker-buffer r))
|
||||||
|
(jump-to-register c))))
|
||||||
|
|
||||||
|
(setq my-switch-to-register-map (make-sparse-keymap))
|
||||||
|
|
||||||
|
(let ((character ?a))
|
||||||
|
(while (<= character ?z)
|
||||||
|
(define-key my-switch-to-register-map
|
||||||
|
(format "%c" character) #'my-switch-to-register)
|
||||||
|
(setq character (1+ character))))
|
||||||
|
|
||||||
|
(global-set-key (kbd "s-s") my-switch-to-register-map)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Programming languages
|
||||||
|
;;; =====================
|
||||||
|
|
||||||
|
|
||||||
|
;;; C and C++
|
||||||
|
;;; ---------
|
||||||
|
|
||||||
;;; The following Emacs packages [from MELPA](#add-melpa-package-list)
|
;;; The following Emacs packages [from MELPA](#add-melpa-package-list)
|
||||||
;;; need to be installed: [cmake-ide](https://melpa.org/#/cmake-ide),
|
;;; need to be installed: [cmake-ide](https://melpa.org/#/cmake-ide),
|
||||||
@ -453,8 +424,8 @@ Argument FRAMES has the same meaning as for `set-frame-font'"
|
|||||||
;;; | `C-c r ;` | `rtags-find-file` (in the current project no metter in which directory)
|
;;; | `C-c r ;` | `rtags-find-file` (in the current project no metter in which directory)
|
||||||
|
|
||||||
|
|
||||||
;;; Lisp and Emacs lisp modes
|
;;; Lisp and Emacs lisp
|
||||||
;;; -------------------------
|
;;; -------------------
|
||||||
|
|
||||||
|
|
||||||
;; in emacs 25.1: M-. runs xref-find-definitions, M-, jumps back
|
;; in emacs 25.1: M-. runs xref-find-definitions, M-, jumps back
|
||||||
@ -511,15 +482,15 @@ Argument FRAMES has the same meaning as for `set-frame-font'"
|
|||||||
(concat "QUICKLISP_HOME="
|
(concat "QUICKLISP_HOME="
|
||||||
(file-name-as-directory directory) "quicklisp/"))))
|
(file-name-as-directory directory) "quicklisp/"))))
|
||||||
|
|
||||||
;;; JS mode
|
;;; JavaScript
|
||||||
;;; -------
|
;;; ----------
|
||||||
|
|
||||||
|
|
||||||
(setq js-indent-level 8)
|
(setq js-indent-level 8)
|
||||||
|
|
||||||
|
|
||||||
;;; Using Go under Emacs
|
;;; Go
|
||||||
;;; --------------------
|
;;; --
|
||||||
|
|
||||||
;;; I use the following setup for the [go-mode] in my `~/.emacs.d/init.el`. This
|
;;; I use the following setup for the [go-mode] in my `~/.emacs.d/init.el`. This
|
||||||
;;; adds syntax highlighting but without fontifing names of called
|
;;; adds syntax highlighting but without fontifing names of called
|
||||||
@ -687,8 +658,8 @@ inserted between the braces between the braces."
|
|||||||
;;; [go-guru]: https://melpa.org/#/go-guru
|
;;; [go-guru]: https://melpa.org/#/go-guru
|
||||||
|
|
||||||
|
|
||||||
;;; Using Python under Emacs
|
;;; Python
|
||||||
;;; ------------------------
|
;;; ------
|
||||||
|
|
||||||
(use-package company-jedi
|
(use-package company-jedi
|
||||||
:ensure nil
|
:ensure nil
|
||||||
@ -705,22 +676,6 @@ inserted between the braces between the braces."
|
|||||||
(add-hook 'python-mode-hook #'my-python-mode-hook-fn)
|
(add-hook 'python-mode-hook #'my-python-mode-hook-fn)
|
||||||
|
|
||||||
|
|
||||||
;;; Yasnippet and abbrev mode
|
|
||||||
;;; -------------------------
|
|
||||||
|
|
||||||
|
|
||||||
(setq-default abbrev-mode 1)
|
|
||||||
|
|
||||||
(use-package yasnippet
|
|
||||||
:ensure nil
|
|
||||||
:init
|
|
||||||
(yas-global-mode 1)
|
|
||||||
:bind
|
|
||||||
(:map yas-minor-mode-map
|
|
||||||
("C-c & t" . yas-describe-tables)
|
|
||||||
("C-c & &" . org-mark-ring-goto)))
|
|
||||||
|
|
||||||
|
|
||||||
;;; Rust
|
;;; Rust
|
||||||
;;; ----
|
;;; ----
|
||||||
|
|
||||||
@ -827,7 +782,27 @@ inserted between the braces between the braces."
|
|||||||
:ensure nil)
|
:ensure nil)
|
||||||
|
|
||||||
|
|
||||||
;;; web-mode
|
;;; Other modes
|
||||||
|
;;; ===========
|
||||||
|
|
||||||
|
|
||||||
|
;;; Yasnippet and abbrev mode
|
||||||
|
;;; -------------------------
|
||||||
|
|
||||||
|
|
||||||
|
(setq-default abbrev-mode 1)
|
||||||
|
|
||||||
|
(use-package yasnippet
|
||||||
|
:ensure nil
|
||||||
|
:init
|
||||||
|
(yas-global-mode 1)
|
||||||
|
:bind
|
||||||
|
(:map yas-minor-mode-map
|
||||||
|
("C-c & t" . yas-describe-tables)
|
||||||
|
("C-c & &" . org-mark-ring-goto)))
|
||||||
|
|
||||||
|
|
||||||
|
;;; Web mode
|
||||||
;;; --------
|
;;; --------
|
||||||
|
|
||||||
|
|
||||||
@ -846,8 +821,8 @@ inserted between the braces between the braces."
|
|||||||
("C-i" . company-indent-or-complete-common)))
|
("C-i" . company-indent-or-complete-common)))
|
||||||
|
|
||||||
|
|
||||||
;;; css-mode
|
;;; CSS
|
||||||
;;; --------
|
;;; ---
|
||||||
|
|
||||||
|
|
||||||
(use-package rainbow-mode
|
(use-package rainbow-mode
|
||||||
@ -887,36 +862,6 @@ inserted between the braces between the braces."
|
|||||||
(require 'ox-beamer))
|
(require 'ox-beamer))
|
||||||
|
|
||||||
|
|
||||||
;;; Switching buffers
|
|
||||||
;;; -----------------
|
|
||||||
|
|
||||||
|
|
||||||
;;; Set keys from `s-s a` to `s-s z` to switch to buffers from a register from a to z
|
|
||||||
|
|
||||||
(defalias 'pr #'point-to-register)
|
|
||||||
|
|
||||||
(defun my-switch-to-register ()
|
|
||||||
"Switch to buffer given by a register named by last character
|
|
||||||
of the key binding used to execute this command."
|
|
||||||
(interactive)
|
|
||||||
(let* ((v (this-command-keys-vector))
|
|
||||||
(c (aref v (1- (length v))))
|
|
||||||
(r (get-register c)))
|
|
||||||
(if (and (markerp r) (marker-buffer r))
|
|
||||||
(switch-to-buffer (marker-buffer r))
|
|
||||||
(jump-to-register c))))
|
|
||||||
|
|
||||||
(setq my-switch-to-register-map (make-sparse-keymap))
|
|
||||||
|
|
||||||
(let ((character ?a))
|
|
||||||
(while (<= character ?z)
|
|
||||||
(define-key my-switch-to-register-map
|
|
||||||
(format "%c" character) #'my-switch-to-register)
|
|
||||||
(setq character (1+ character))))
|
|
||||||
|
|
||||||
(global-set-key (kbd "s-s") my-switch-to-register-map)
|
|
||||||
|
|
||||||
|
|
||||||
;;; Search engines
|
;;; Search engines
|
||||||
;;; --------------
|
;;; --------------
|
||||||
|
|
||||||
@ -933,18 +878,8 @@ of the key binding used to execute this command."
|
|||||||
:keybinding "g"))
|
:keybinding "g"))
|
||||||
|
|
||||||
|
|
||||||
;;; Workaround for security vulnerability in Emacs >= 21.1 and < 25.3
|
;;; EWW Browser
|
||||||
;;; -----------------------------------------------------------------
|
;;; -----------
|
||||||
;;;
|
|
||||||
;;; See [Changes in Emacs 25.3](https://www.gnu.org/software/emacs/news/NEWS.25.3)
|
|
||||||
|
|
||||||
(eval-after-load "enriched"
|
|
||||||
'(defun enriched-decode-display-prop (start end &optional param)
|
|
||||||
(list start end)))
|
|
||||||
|
|
||||||
|
|
||||||
;;; Rest
|
|
||||||
;;; ----
|
|
||||||
|
|
||||||
|
|
||||||
(defun my-eww-scale-adjust ()
|
(defun my-eww-scale-adjust ()
|
||||||
@ -960,6 +895,97 @@ of the key binding used to execute this command."
|
|||||||
(delete-window))
|
(delete-window))
|
||||||
|
|
||||||
|
|
||||||
|
;;; Appearance and custom file
|
||||||
|
;;; ==========================
|
||||||
|
|
||||||
|
|
||||||
|
;;; Appearance
|
||||||
|
;;; ----------
|
||||||
|
|
||||||
|
|
||||||
|
(setq inhibit-startup-screen t
|
||||||
|
ediff-window-setup-function #'ediff-setup-windows-plain)
|
||||||
|
(set-scroll-bar-mode 'right)
|
||||||
|
(menu-bar-mode 0)
|
||||||
|
(tool-bar-mode 0)
|
||||||
|
|
||||||
|
(defun set-frame-font-inconsolata (size &optional frames)
|
||||||
|
"Set font to Inconsolata:pixelsize=SIZE:antialias=true:autohint=false.
|
||||||
|
Argument FRAMES has the same meaning as for `set-frame-font'"
|
||||||
|
(interactive "n[Inconsolata] size: ")
|
||||||
|
(set-frame-font
|
||||||
|
(format "Inconsolata:pixelsize=%d:antialias=true:autohint=true" size)
|
||||||
|
nil frames))
|
||||||
|
|
||||||
|
(defun set-frame-font-go-mono (size &optional frames)
|
||||||
|
"Set font to Go mono:pixelsize=SIZE:antialias=true:autohint=false.
|
||||||
|
Argument FRAMES has the same meaning as for `set-frame-font'"
|
||||||
|
(interactive "n[Go mono] size: ")
|
||||||
|
(set-frame-font
|
||||||
|
(format "Go mono:pixelsize=%d:antialias=true:autohint=true" size)
|
||||||
|
nil frames))
|
||||||
|
|
||||||
|
(use-package powerline
|
||||||
|
:ensure nil
|
||||||
|
:defer)
|
||||||
|
|
||||||
|
(use-package nimbus-theme
|
||||||
|
:ensure nil
|
||||||
|
:defer)
|
||||||
|
|
||||||
|
(use-package leuven-theme
|
||||||
|
:ensure nil
|
||||||
|
:defer)
|
||||||
|
|
||||||
|
;; easy switching between themes
|
||||||
|
(use-package helm-themes
|
||||||
|
:ensure nil
|
||||||
|
:bind
|
||||||
|
(("C-c T" . helm-themes))
|
||||||
|
:config
|
||||||
|
;; need to update powerline after changing theme
|
||||||
|
(advice-add 'helm-themes :after #'powerline-reset))
|
||||||
|
|
||||||
|
(defun my-make-frame-function(frame)
|
||||||
|
(if (not (featurep 'powerline))
|
||||||
|
(powerline-center-theme)))
|
||||||
|
|
||||||
|
(setq my-dark-theme 'nimbus
|
||||||
|
my-light-theme 'leuven)
|
||||||
|
|
||||||
|
(defun my-light-theme ()
|
||||||
|
"Switch to my light theme."
|
||||||
|
(interactive)
|
||||||
|
(mapc #'disable-theme custom-enabled-themes)
|
||||||
|
(when (load-theme my-light-theme)
|
||||||
|
(powerline-reset)))
|
||||||
|
|
||||||
|
(defun my-dark-theme ()
|
||||||
|
"Switch to my dark theme."
|
||||||
|
(interactive)
|
||||||
|
(mapc #'disable-theme custom-enabled-themes)
|
||||||
|
(when (load-theme my-dark-theme)
|
||||||
|
(powerline-reset)))
|
||||||
|
|
||||||
|
(when window-system
|
||||||
|
(my-make-frame-function (selected-frame)))
|
||||||
|
|
||||||
|
(add-hook 'after-make-frame-functions
|
||||||
|
#'my-make-frame-function)
|
||||||
|
|
||||||
|
;;; My customization for some used themes
|
||||||
|
|
||||||
|
(eval-after-load 'firebelly-theme
|
||||||
|
'(custom-theme-set-faces
|
||||||
|
'firebelly
|
||||||
|
'(font-lock-comment-delimiter-face ((t (:foreground "#505050"))))))
|
||||||
|
|
||||||
|
(eval-after-load 'nimbus-theme
|
||||||
|
'(custom-theme-set-faces
|
||||||
|
'nimbus
|
||||||
|
'(region ((t (:background "#505050"))))))
|
||||||
|
|
||||||
|
|
||||||
;;; Use separate custom file
|
;;; Use separate custom file
|
||||||
;;; ------------------------
|
;;; ------------------------
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user