Advertisement
froleyks

spacemacs.org

May 17th, 2019
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.56 KB | None | 0 0
  1. * Genearal
  2. ** use package
  3. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  4. ;; This is only needed once, near the top of the file
  5. (eval-when-compile
  6. ;; Following line is not needed if use-package.el is in ~/.emacs.d
  7. (add-to-list 'load-path "<path where use-package is installed>")
  8. (require 'use-package))
  9. #+END_SRC
  10. ** evil everywhere
  11. #+BEGIN_SRC emacs-lisp :tangle user-init.el
  12. (setq evil-want-keybinding nil)
  13. #+END_SRC
  14.  
  15. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  16. ;; WARNING: Order dependent
  17. (use-package evil
  18. :ensure t
  19. :init
  20. (setq evil-want-integration nil)
  21. :config
  22. (evil-mode 1))
  23.  
  24. (use-package evil-collection
  25. :after evil
  26. :ensure t
  27. :config
  28. ;; (evil-collection-init)
  29. (evil-collection-init 'calc)
  30. (evil-collection-init 'rtags)
  31. (evil-collection-init 'custom)
  32. :custom
  33. (evil-collection-setup-minibuffer t))
  34. #+END_SRC
  35. ** explorer starts here
  36. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  37. (setq default-directory "~/Dropbox/")
  38. #+END_SRC
  39. ** fixes
  40. *** Semantic
  41. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  42. ;; ;; remove sticky func line
  43. ;; (with-eval-after-load 'semantic
  44. ;; (setq semantic-default-submodes
  45. ;; (remove 'global-semantic-stickyfunc-mode
  46. ;; semantic-default-submodes))
  47.  
  48. ;; ;; might do something about the slowdown
  49. ;; ;; (setq semantic-default-submodes
  50. ;; ;; (remove 'global-semantic-idle-scheduler-mode semantic-default-submodes))
  51. ;; (cl-delete-if (lambda (x) (string-match-p "^semantic-" (symbol-name x))) completion-at-point-functions)
  52. ;; )
  53. ;; (spacemacs/toggle-semantic-stickyfunc-globally-off)
  54. #+END_SRC
  55. *** helm
  56. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  57. ;; (require 'helm-bookmark)
  58. #+END_SRC
  59. *** Allways open new window/frame/why...
  60. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  61. ;; (setq pop-up-frames t)
  62. ;; ;; (purpose-mode -1)
  63. #+END_SRC
  64. *** smart parents dont escape
  65. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  66. (setq sp-escape-quotes-after-insert nil)
  67. #+END_SRC
  68. ** english / german
  69. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  70. ;;(setq-default ispell-dictionary "german")
  71. (setq-default ispell-dictionary "english")
  72. #+END_SRC
  73. ** Movement
  74. *** Avy
  75. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  76. (setq-default avy-keys '(?n ?e ?r ?a ?t ?i ?d ?u))
  77. (define-key evil-normal-state-map (kbd "k") 'evil-avy-goto-word-or-subword-1)
  78. (define-key evil-visual-state-map (kbd "k") 'evil-avy-goto-word-or-subword-1)
  79. (define-key evil-motion-state-map (kbd "k") 'evil-avy-goto-word-or-subword-1)
  80. (define-key evil-operator-state-map (kbd "k") 'evil-avy-goto-word-or-subword-1)
  81. (define-key evil-replace-state-map (kbd "k") 'evil-avy-goto-word-or-subword-1)
  82.  
  83. (define-key evil-insert-state-map (kbd "C-f") 'evil-avy-goto-char-in-line)
  84. (define-key evil-emacs-state-map (kbd "C-f") 'evil-avy-goto-char-in-line)
  85. (define-key evil-normal-state-map (kbd "C-f") 'evil-avy-goto-char-in-line)
  86. (define-key evil-visual-state-map (kbd "C-f") 'evil-avy-goto-char-in-line)
  87. (define-key evil-motion-state-map (kbd "C-f") 'evil-avy-goto-char-in-line)
  88. (define-key evil-operator-state-map (kbd "C-f") 'evil-avy-goto-char-in-line)
  89. (define-key evil-outer-text-objects-map (kbd "C-f") 'evil-avy-goto-char-in-line)
  90. (define-key evil-inner-text-objects-map (kbd "C-f") 'evil-avy-goto-char-in-line)
  91. (define-key evil-replace-state-map (kbd "C-f") 'evil-avy-goto-char-in-line)
  92. (global-set-key (kbd "C-f") 'evil-avy-goto-char-in-line)
  93.  
  94. #+END_SRC
  95. *** J and K jump between whitespaces
  96. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  97. (defun next-whitespace()
  98. (interactive)
  99. (forward-char)
  100. (setq found (search-forward " \n" nil t nil))
  101. (when found (backward-char))
  102. )
  103.  
  104. (defun previous-whitespace()
  105. (interactive)
  106. (setq found (search-backward " \n" nil t nil))
  107. )
  108.  
  109. (define-key evil-normal-state-map (kbd "M-k") 'previous-whitespace)
  110. (define-key evil-normal-state-map (kbd "M-j") 'next-whitespace)
  111. #+END_SRC
  112. *** arrowkeys leave insert mode
  113. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  114. (defun leave-insert-up ()
  115. (interactive)
  116. (evil-normal-state)
  117. (evil-previous-line)
  118. )
  119. (define-key evil-insert-state-map (kbd "<up>") 'leave-insert-up)
  120. (defun leave-insert-down ()
  121. (interactive)
  122. (evil-normal-state)
  123. (evil-next-line)
  124. )
  125. (define-key evil-insert-state-map (kbd "<down>") 'leave-insert-down)
  126. #+END_SRC
  127. *** gedankenstrich move up
  128. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  129. (global-set-key (kbd "−") 'evil-previous-line-first-non-blank)
  130. #+END_SRC
  131. *** jump to same indent
  132. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  133. (defun jump-to-same-indent (direction)
  134. (interactive "P")
  135. (let ((start-indent (current-indentation)))
  136. (while
  137. (and (not (bobp))
  138. (zerop (forward-line (or direction 1)))
  139. (or (= (current-indentation) 0)
  140. (> (current-indentation) start-indent)))))
  141. (back-to-indentation))
  142.  
  143. (define-key evil-normal-state-map (kbd "M-{") '(lambda () (interactive) (jump-to-same-indent -1)))
  144. (define-key evil-normal-state-map (kbd "M-}") 'jump-to-same-indent)
  145. #+END_SRC
  146. *** jump to register with j
  147. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  148. (define-key evil-normal-state-map "j" 'evil-goto-mark)
  149. (define-key evil-visual-state-map "j" 'evil-goto-mark)
  150. #+END_SRC
  151. *** Windows
  152. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  153. (evil-leader/set-key
  154. "wl" 'evil-window-up
  155. "wa" 'evil-window-down
  156. "wi" 'evil-window-left
  157. "we" 'evil-window-right
  158. )
  159. #+END_SRC
  160. ** Appearance
  161. *** wrap lines
  162. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  163. (global-visual-line-mode t)
  164. #+END_SRC
  165. *** supress saving promt whent compiling
  166. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  167. (setq compilation-ask-about-save nil)
  168. #+END_SRC
  169. ** Scrolling
  170. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  171. (global-set-key (kbd "C-S-u") 'scroll-up)
  172. (global-set-key (kbd "C-S-d") 'scroll-down)
  173. #+END_SRC
  174. ** dired hide details
  175. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  176. (add-hook 'dired-mode-hook
  177. (lambda ()
  178. (dired-hide-details-mode)))
  179. #+END_SRC
  180. * Bindings
  181. ** save with escape
  182. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  183. (defun froleyks-save-if-bufferfilename (&rest args)
  184. (when (buffer-file-name)
  185. (save-buffer)))
  186.  
  187. (defadvice evil-force-normal-state
  188. (after evil-force-normal-state-after activate)
  189. (froleyks-save-if-bufferfilename))
  190. #+END_SRC
  191. ** open new frames
  192. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  193. (evil-leader/set-key "bo" 'display-buffer-other-frame)
  194. #+END_SRC
  195. ** Redo
  196. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  197. (define-key evil-normal-state-map (kbd "U")'undo-tree-redo)
  198. #+END_SRC
  199. ** helm completion
  200. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  201. (global-set-key (kbd "C-<SPC>") 'helm-company)
  202. #+END_SRC
  203. ** quick undo
  204. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  205. (require 'general)
  206. (general-define-key
  207. :states '(normal insert)
  208. "\C-n" 'undo
  209. )
  210. #+END_SRC
  211. ** quick last macro
  212. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  213. (define-key evil-normal-state-map (kbd "Q")(kbd"@@"))
  214. #+END_SRC
  215. ** insert lines
  216. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  217. (define-key evil-normal-state-map (kbd "C-a") 'spacemacs/insert-line-above-no-indent)
  218. (define-key evil-normal-state-map (kbd "C-j") 'spacemacs/insert-line-below-no-indent)
  219. #+END_SRC
  220. ** jump history
  221. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  222. (require 'general)
  223. (general-define-key
  224. :states 'normal
  225. "\C-s" 'evil-jump-forward
  226. )
  227. #+END_SRC
  228. ** complex comamnds
  229. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  230. (evil-leader/set-key "Ch" 'helm-complex-command-history)
  231. #+END_SRC
  232. ** diff current buffer
  233. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  234. (evil-leader/set-key
  235. "gd" 'magit-diff-buffer-file
  236. )
  237. #+END_SRC
  238. * Utility
  239. ** Snippets
  240. *** Save them under VC
  241. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  242. (setq-default yas-snippet-dirs '("~/.config/spacemacs/snippets"))
  243. #+END_SRC
  244. *** create snippet quickly
  245. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  246. (evil-leader/set-key
  247. "Sr" 'helm-yas-create-snippet-on-region
  248. "Se" 'helm-yas-visit-snippet-file
  249. )
  250. #+END_SRC
  251. *** Tab does not expand
  252. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  253. (with-eval-after-load 'yasnippet
  254. (define-key yas-keymap (kbd "TAB") 'yas-next-field)
  255. (define-key yas-keymap (kbd "<tab>") 'yas-next-field)
  256. )
  257. #+END_SRC
  258. *** quick snippets
  259. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  260. (evil-leader/set-key
  261. "Sq" 'aya-create
  262. "SQ" 'aya-persist-snippet
  263. "Si" 'spacemacs/auto-yasnippet-expand
  264. )
  265. #+END_SRC
  266. ** Abbrev
  267. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  268. (setq-default abbrev-mode t)
  269. (setq-default abbrev-file-name "~/.config/spacemacs/abbrev_defs")
  270. (read-abbrev-file "~/.config/spacemacs/abbrev_defs")
  271. (evil-leader/set-key
  272. "Sl" 'inverse-add-mode-abbrev
  273. "Sa" 'edit-abbrevs
  274. )
  275. #+END_SRC
  276. ** Bookmark
  277. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  278. (setq bookmark-default-file "~/.config/spacemacs/bookmarks")
  279. #+END_SRC
  280. ** Line manipulation
  281. *** flush empty lines
  282. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  283. (defun flush-empty-lines ()
  284. "removes empty lines from files"
  285. (interactive)
  286. (flush-lines "^$")
  287. )
  288. #+END_SRC
  289. *** remove duplicate lines
  290. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  291. (defun remove-dubplicate-lines ()
  292. "removes duplicate lines form file"
  293. (interactive)
  294. (replace-regexp "\\([^\n]+\n\\)\\1+" "\\1")
  295. )
  296. #+END_SRC
  297. *** keybindings
  298. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  299. (evil-leader/set-key
  300. "Le" 'flush-empty-lines
  301. "Lf" 'flush-lines
  302. "Lk" 'keep-lines
  303. "Ld" 'remove-dubplicate-lines
  304. )
  305. #+END_SRC
  306. ** evil snipe
  307. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  308. (use-package evil-snipe
  309. :defer t
  310. :bind (:map evil-normal-state-map
  311. ("f" . evil-snipe-f)
  312. ("F" . evil-snipe-F)
  313. ("t" . evil-snipe-t)
  314. ("T" . evil-snipe-T)
  315. :map evil-snipe-mode-map ("," . nil)
  316. :map evil-snipe-local-mode-map ("," . nil)
  317. :map evil-snipe-override-mode-map ("," . nil)
  318. :map evil-snipe-override-local-mode-map ("," . nil)
  319. :map evil-snipe-parent-transient-map ("," . nil))
  320. :config
  321. (custom-set-faces
  322. '(evil-snipe-first-match-face ((t nil))))
  323. (setq evil-snipe-scope 'buffer)
  324. (setq evil-snipe-enable-highlight nil)
  325. (setq evil-snipe-enable-incremental-highlight nil)
  326. )
  327. ;; (define-key evil-normal-state-map (kbd "s") 'evil-substitute)
  328. ;; (evil-define-key* '(motion normal) evil-snipe-local-mode-map
  329. ;; "s" nil
  330. ;; "S" nil)
  331. #+END_SRC
  332. ** undo register
  333. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  334. (evil-leader/set-key
  335. "ru" 'undo-tree-save-state-to-register
  336. "rU" 'undo-tree-restore-state-from-register
  337. )
  338. #+END_SRC
  339. ** pastebin
  340. #+BEGIN_SRC emacs-lisp :tangle user-config.el
  341. (evil-leader/set-key
  342. "BB" 'pastebin-new
  343. "BL" 'pastebin-list-buffer-refresh
  344. )
  345.  
  346. (use-package neopastebin
  347. :defer t
  348. :commands (pastebin-new pastebin-list-buffer-refresh)
  349. :init
  350. (add-to-list 'load-path "~/.config/spacemacs/local/emacs-pastebin-master")
  351. :config
  352. (pastebin-create-login :dev-key "b05fe24db6a4bca168b463b3fa777bfa"
  353. :username "froleyks")
  354. )
  355. #+END_SRC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement