aboutsummaryrefslogtreecommitdiff
path: root/doom.d/config.org
blob: 92a0ab7527b9703432ef9a3aab1c1bfefde00661 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#+TITLE: Oreodave's emacs configuration
#+AUTHOR: Oreodave
#+DESCRIPTION: My Doom Emacs configuration!

* Preclude
This is my [[https://github.com/hlissner/doom-emacs][Doom Emacs]] configuration, which I try to use for as many things as
possibe. It is currently my main C# and Python editor but hopefully it will
become my C one soon!

My previous editors are VSCode, the JetBrains IDEs and [[http://spacemacs.org][spacemacs]] (yes, I count
spacemacs as its own editor!). I still do use VSCode for debugging unit tests or
if I'm collaborating with someone else.

I currently use Vim + tmux and Doom Emacs (woo!) for my current workflow. I
always have both open - playing music, doing quick config edits, running
servers and large jobs in my tmux session. I do project work, writing and
overall coding in emacs.

* Global variables
#+BEGIN_SRC emacs-lisp
(setq doom-localleader-key ",")
#+END_SRC
'<SPC>m' is right next to ',', so may as well use one tap instead of two

* Theming
#+BEGIN_SRC emacs-lisp
(load-theme 'doom-molokai t)
#+END_SRC
I like monokai :)

* General keymap
#+BEGIN_SRC emacs-lisp
(map!
 :leader
 :desc   "M-x"                "<SPC>" 'counsel-M-x
 :desc   "Indent"             "j"     'indent-region
 :desc   "Open calendar"      "rc"    '(lambda() (interactive) (find-file "~/Text/calendar.org"))
 :desc   "Open project files" "pf"    'projectile-find-file
#+END_SRC
- Redefine <SPC><SPC> as M-x rather than find-file because of my muscle memory
  with spacemacs
- General maps like <SPC>j for indenting because I don't know what else to bind
  them to
- <SPC>pf => project -> find file
#+BEGIN_SRC emacs-lisp
 (:prefix "/" ; Search
   :desc "Ag!"                "a"     '+ivy/ag
   :desc "Search buffer"      "/"     'swiper
   )
#+END_SRC
- I like using <SPC>/ in comparison to <SPC>s: it's closer together (thus
  quicker, I do searches a lot so this is noticeable) and makes more sense
- Ag is actually insanely useful, especially at a quick keybind
- <SPC>// is quicker to do than <SPC>/b, for something that is done so often

#+BEGIN_SRC emacs-lisp
 (:prefix "w" ; Windows
   :desc "Close window"       "d"     '+workspace/close-window-or-workspace
   :desc "Switch window"      "W"     'ace-window
   )
#+END_SRC
- <SPC>wd is slightly closer together than <SPC>wc
  - <SPC>wd is also used in spacemacs so I'd rather use this
- <SPC>wW allows me to switch windows more efficiently than before, better than
  just motions

#+BEGIN_SRC emacs-lisp
 (:prefix "b"
   :desc "Close buffer"       "d"     'doom/kill-this-buffer-in-all-windows
   )
 )
#+END_SRC
- <SPC>bd is used for the same reasons as above

* Plugins and Packages

** Elcord
#+BEGIN_SRC emacs-lisp
(after! elcord
  (elcord-mode))
#+END_SRC
I like displaying that I'm working on discord, though not very useful. May delete.
* Languages

** C#
#+BEGIN_SRC emacs-lisp
(after! csharp-mode
  (setq omnisharp-server-executable-path "~/bin/omnisharp/run")
  (add-hook 'csharp-mode-hook '(lambda() (setq c-basic-offset 4))) ; Hook for csharp setting variables
#+END_SRC
- I have custom installed the omnisharp roslyn executable, so I'd rather use
  that
- C# code is better at 4 space indents, but I indent most of my C code at 2
  space indents because it looks nicer :)

#+BEGIN_SRC emacs-lisp
  (map! ; CSharp Keybinds
   :map csharp-mode-map
   :localleader
   :desc   "Format buffer"  "="    'omnisharp-code-format-entire-file
   (:prefix "t"
     :desc "Unit Test This" "t"   'omnisharp-unit-test-at-point
     :desc "Unit Test Last" "l"   'omnisharp-unit-test-last
     :desc "Unit Test All"  "b"   'omnisharp-unit-test-buffer
     )
   )
  )
#+END_SRC
- Currently the Doom Emacs keybinds are not working for C# Unit-tests so I had
  to do them myself
- I find these keybinds to be more mnemonic (,mtt => Test -> This)

** Python
#+BEGIN_SRC emacs-lisp
(after! python
  (setq python-version-checked t)
  (setq python-python-command "python3")
  (setq python-shell-interpreter "python3")
  (setq flycheck-python-pycompile-executable "python3")

  (map! ; Python keybinds
   :map python-mode-map
   :localleader
   :desc "Start python minor" "c" 'run-python
   (:prefix "s"
     :desc "Send region REPL" "r" 'python-shell-send-region
     :desc "Send buffer"      "b" 'python-shell-send-buffer
     :desc "Send function"    "f" 'python-shell-send-defun
     )
   )
  )
#+END_SRC
** Org
#+BEGIN_SRC emacs-lisp
(after! org
  (map! ; Org keybinds
   :map org-mode-map
   :localleader
   :desc "Org dispatch" "ee" 'org-export-dispatch
   )
  )
#+END_SRC