Personal emacs config
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
3.4 KiB

6 years ago
6 years ago
  1. * Editing
  2. ** IEdit mode
  3. #+BEGIN_SRC emacs-lisp
  4. (use-package iedit
  5. :bind ("C-;" . iedit-mode))
  6. #+END_SRC
  7. ** Spellcheck
  8. #+BEGIN_SRC emacs-lisp
  9. (global-set-key (kbd "C-!") 'ispell-buffer)
  10. #+END_SRC
  11. ** Undo tree
  12. #+BEGIN_SRC emacs-lisp
  13. (use-package undo-tree
  14. :config
  15. (global-undo-tree-mode))
  16. #+END_SRC
  17. * Save/load
  18. ** Backup/auto-save
  19. #+BEGIN_SRC emacs-lisp
  20. (let ((backup-dir "~/.emacs.d/backup")
  21. (auto-save-dir "~/.emacs.d/autosave"))
  22. (if (not (file-directory-p backup-dir))
  23. (make-directory backup-dir))
  24. (if (not (file-directory-p
  25. auto-save-dir))
  26. (make-directory auto-save-dir)))
  27. #+END_SRC
  28. ** On save
  29. #+BEGIN_SRC emacs-lisp
  30. (add-hook 'before-save-hook 'delete-trailing-whitespace)
  31. #+END_SRC
  32. ** Recent files mode
  33. #+BEGIN_SRC emacs-lisp
  34. (use-package recentf
  35. :config
  36. (recentf-mode 1))
  37. #+END_SRC
  38. * Platform dependant
  39. ** Windows
  40. #+BEGIN_SRC emacs-lisp
  41. #+END_SRC
  42. * Major modes
  43. ** Java
  44. ** JavaScript
  45. ** Magit
  46. #+BEGIN_SRC emacs-lisp
  47. (use-package magit
  48. :bind (("C-x g" . magit-status))
  49. :config
  50. (use-package git-commit
  51. :hook (git-commit-setup . git-commit-turn-on-flyspell)))
  52. #+END_SRC
  53. ** Python
  54. *** Platform specific
  55. #+BEGIN_SRC emacs-lisp
  56. (cond
  57. ((string-equal system-type "gnu/linux")
  58. "python3")
  59. ((string-equal system-type "windows-nt")
  60. "python.exe"))
  61. #+END_SRC
  62. *** custom feature
  63. *** bindings/settings
  64. #+begin_src emacs-lisp
  65. (use-package python
  66. :config
  67. (use-package elpy
  68. :bind (("C-=" . elpy-goto-assignment))
  69. :config (when (require 'flycheck nil t)
  70. (setq elpy-modules (delq 'elpy-module-flymake elpy-modules))))
  71. (elpy-enable)
  72. (blacken-mode))
  73. #+END_SRC
  74. ** SSH config mode
  75. #+BEGIN_SRC emacs-lisp
  76. (use-package ssh-config-mode
  77. :mode "~/.ssh/config\\'")
  78. #+END_SRC
  79. ** Tramp
  80. ** Webmode
  81. ** YAML
  82. #+BEGIN_SRC emacs-lisp
  83. (use-package yaml-mode
  84. :mode "\\.yml\\'")
  85. #+END_SRC
  86. * Minor modes/misc
  87. ** Kill the things
  88. *** Buffer
  89. #+BEGIN_SRC emacs-lisp
  90. (global-set-key (kbd "C-x k") 'kill-this-buffer)
  91. #+END_SRC
  92. *** Emacs
  93. #+BEGIN_SRC emacs-lisp
  94. (global-set-key (kbd "C-x C-k C-x C-k") 'kill-emacs)
  95. #+END_SRC
  96. ** Lispy
  97. #+BEGIN_SRC emacs-lisp
  98. (use-package lispy
  99. :hook ((emacs-lisp-mode) . lispy-mode))
  100. #+END_SRC
  101. * Navigation/autocompletion
  102. ** Ace window
  103. #+BEGIN_SRC emacs-lisp
  104. (use-package ace-window
  105. :bind (("M-Q" . ace-window)))
  106. #+END_SRC
  107. ** Hippie expand
  108. #+BEGIN_SRC emacs-lisp
  109. (use-package hippie-exp
  110. :bind ("M-/" . hippie-expand))
  111. #+END_SRC
  112. ** IBuffer mode
  113. #+BEGIN_SRC emacs-lisp
  114. (use-package ibbufer-vc
  115. :hook ((ibuffer-mode . ibuffer-vc-set-filter-groups-by-vc-root)))
  116. (use-package ibuffer
  117. :bind (("C-x C-b" . ibuffer))
  118. :config
  119. (define-ibuffer-column size-h
  120. ;; Use human readable Size column instead of original one
  121. (:name "Size" :inline t)
  122. (cond ((> (buffer-size) 1000000)
  123. (format "%7.1fM" (/ (buffer-size) 1000000.0)))
  124. ((> (buffer-size) 100000)
  125. (format "%7.0fk" (/ (buffer-size) 1000.0)))
  126. ((> (buffer-size) 1000)
  127. (format "%7.1fk" (/ (buffer-size) 1000.0)))
  128. (t
  129. (format "%8d" (buffer-size))))))
  130. #+END_SRC
  131. ** Ivy
  132. #+BEGIN_SRC emacs-lisp
  133. (use-package ivy
  134. :config
  135. (use-package swiper
  136. :bind ("C-s" . swiper))
  137. (ivy-mode))
  138. #+END_SRC
  139. * Look and feel
  140. ** Line numbers
  141. #+BEGIN_SRC emacs-lisp
  142. (global-display-line-numbers-mode)
  143. #+END_SRC
  144. ** Spaceline
  145. #+BEGIN_SRC emacs-lisp
  146. (use-package spaceline-config
  147. :config
  148. (spaceline-spacemacs-theme)
  149. (winum-mode))
  150. #+END_SRC