Commit ce1fdd9d85e8
.emacs.d/emacs.org
@@ -283,7 +283,6 @@
github-personal-folder (expand-file-name github-username github-general-folder))
#+END_SRC
-
* Defaults ๐ฃ
** Disabling some GUI elements
@@ -595,7 +594,6 @@
("/" . dired-narrow)))
#+END_SRC
-
** Diminish minor modes from the mode line
Now that we have made sure we have installed use-package, we will make
@@ -677,7 +675,7 @@
defined) to /toggle/ it.
#+BEGIN_SRC emacs-lisp
- (subword-mode)
+ (subword-mode t)
#+END_SRC
** Narrow to region
@@ -722,10 +720,9 @@
cool : ๐ ๐ ๐ โจ โ
๐ฒ.
#+BEGIN_SRC emacs-lisp
- (set-fontset-font t 'unicode "Symbola" nil 'prepend)
+ ;; (set-fontset-font t 'unicode "Symbola" nil 'prepend)
#+END_SRC
-
** Buffers
Setup uniquify so that non-unique buffer names get the parent path included to make them unique.
@@ -817,42 +814,6 @@
(unless (server-running-p server-name)
(server-start))))
#+END_SRC
-** Bind key to bind some unbound defaults
-
- There are some pretty nice default functions that are unbound. I use
- the =bind-key= package that comes along with use-package to bind these
- keys.
-
- #+BEGIN_SRC emacs-lisp
- (bind-keys*
- ("C-r" . dabbrev-expand)
- ("M-/" . hippie-expand)
- ("M-m SPC R" . locate)
- ("M-m W" . winner-undo)
- ("M-m g m" . make-frame)
- ("M-m g M" . delete-frame)
- ("M-m g n" . select-frame-by-name)
- ("M-m g N" . set-frame-name)
- ("M-m B" . mode-line-other-buffer)
- ("M-m =" . indent-region)
- ("M-m g (" . Info-prev)
- ("M-m g )" . Info-next)
- ("M-m ^" . Info-up)
- ("M-m &" . Info-goto-node)
- ("M-m g f" . find-file-at-point)
- ("M-m g u" . downcase-region)
- ("M-m g U" . upcase-region)
- ("M-m g C" . capitalize-region)
- ("M-m g F" . follow-mode)
- ("M-m R" . overwrite-mode)
- ("M-m g j" . doc-view-next-page)
- ("M-m g k" . doc-view-previous-page)
- ("M-m : t" . emacs-init-time)
- ("M-m g q" . fill-paragraph)
- ("M-m g @" . compose-mail)
- ("M-m SPC ?" . describe-bindings))
- #+END_SRC
-
* Key hints
** Which-key
@@ -996,21 +957,6 @@
("M-x" . counsel-M-x)))
#+END_SRC
-*** swiper
-
- #+BEGIN_QUOTE
- Swiper is an alternative to isearch that uses ivy to show an
- overview of all matches.
- #+END_QUOTE
-
- #+BEGIN_SRC emacs-lisp
- (use-package swiper
- :ensure t
- :bind
- (([remap isearch-forward] . swiper)
- ([remap isearch-backward] . swiper)))
- #+END_SRC
-
** Undo tree
The default Emacs [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Undo.html][undo]] command is weird. Better undo and redo
@@ -1052,78 +998,7 @@
#+END_SRC
** Window management
-*** Ace window
-
- [[https://github.com/abo-abo/ace-window][This package]] allows way better window movement that the default
- =other-window= binding.
-
- #+BEGIN_SRC emacs-lisp
- (defun joe-scroll-other-window()
- (interactive)
- (scroll-other-window 1))
- (defun joe-scroll-other-window-down ()
- (interactive)
- (scroll-other-window-down 1))
- ;; From https://github.com/abo-abo/ace-window/wiki but adapted to bepo
- (use-package ace-window
- :ensure t
- :bind ([remap other-window] . ace-window)
- :config
- (set-face-attribute 'aw-leading-char-face nil :foreground "deep sky blue" :weight 'bold :height 3.0)
- (set-face-attribute 'aw-mode-line-face nil :inherit 'mode-line-buffer-id :foreground "lawn green")
- (setq aw-keys '(?a ?u ?i ?e ?t ?s ?r)
- aw-dispatch-always t
- aw-dispatch-alist
- '((?y aw-delete-window "Ace - Delete Window")
- (?x aw-swap-window "Ace - Swap Window")
- (?\' aw-flip-window "Ace - Flip Window")
- (?\. aw-split-window-vert "Ace - Split Vert Window")
- (?c aw-split-window-horz "Ace - Split Horz Window")
- (?n delete-other-windows "Ace - Maximize Window")
- (?k balance-windows)
- (?v winner-undo)
- (?o winner-redo)))
-
- (when (package-installed-p 'hydra)
- (defhydra hydra-window-size (:color red)
- "Windows size"
- ("c" shrink-window-horizontally "shrink horizontal")
- ("t" shrink-window "shrink vertical")
- ("s" enlarge-window "enlarge vertical")
- ("r" enlarge-window-horizontally "enlarge horizontal")
- ("+" text-scale-increase "increase text size")
- ("-" text-scale-decrease "decrease text size"))
- (defhydra hydra-window-frame (:color red)
- "Frame"
- ("e" make-frame "new frame")
- ("y" delete-frame "delete frame"))
- (defhydra hydra-window-scroll (:color red)
- "Scroll other window"
- ("'" joe-scroll-other-window "scroll")
- ("j" joe-scroll-other-window-down "scroll down"))
- (add-to-list 'aw-dispatch-alist '(?w hydra-window-size/body) t)
- (add-to-list 'aw-dispatch-alist '(?l hydra-window-scroll/body) t)
- (add-to-list 'aw-dispatch-alist '(?g hydra-window-frame/body) t))
- (ace-window-display-mode t)
- (winner-mode 1))
- #+END_SRC
-
-*** Toggle zoom window
-
- I generally have multiple windows open and might need to zoom into
- one every now and then. I also might split them and change them. I
- would like to think of [[https://github.com/syohex/emacs-zoom-window][this package]] as smart zoom where I zoom into
- a window, split further, and have =winner= handle the history and
- just zoom right back out and continue working on the previous
- configuration. It also indicates if you are zoomed in or not via
- the status line color.
-
- #+BEGIN_SRC emacs-lisp
- (use-package zoom-window
- :ensure t
- :bind* (("M-m Z" . zoom-window-zoom)))
- #+END_SRC
-
+*** TODO Ace window
*** Popwin
#+BEGIN_QUOTE
@@ -1154,7 +1029,6 @@
(global-set-key (kbd "C-z") popwin:keymap)))
#+END_SRC
-
*** Fullframe
[[https://github.com/tomterl/fullframe][Fullframe]] advises commands to execute fullscreen, restoring the window
@@ -1169,104 +1043,10 @@
(fullframe list-packages quit-window))
#+END_SRC
-** Bookmarks navigation
-
- #+BEGIN_SRC emacs-lisp
- (defhydra sk/hydra-bookmarks (:color blue
- :hint nil)
- "
- _s_: set _b_: bookmark _j_: jump _d_: delete _q_: quit
- "
- ("s" bookmark-set)
- ("b" bookmark-save)
- ("j" bookmark-jump)
- ("d" bookmark-delete)
- ("q" nil :color blue))
- (bind-keys*
- ("M-m `" . sk/hydra-bookmarks/body))
- #+END_SRC
-
** Project management
-
-*** Projectile
-
- #+BEGIN_QUOTE
- Projectile is a project interaction library for Emacs. Its goal is
- to provide a nice set of features operating on a project level
- without introducing external dependencies(when feasible). For
- instance - finding project files has a portable implementation
- written in pure Emacs Lisp without the use of GNU find (but for
- performance sake an indexing mechanism backed by external commands
- exists as well).
- #+END_QUOTE
-
- #+BEGIN_SRC emacs-lisp
- (use-package projectile
- :ensure t
- :bind* (("M-m SPC d" . projectile-find-file)
- ("M-m SPC D" . projectile-switch-project)
- ("M-m SPC TAB" . projectile-find-other-file))
- :diminish projectile-mode
- :init (add-hook 'prog-mode-hook 'projectile-mode)
- :config
- (setq projectile-keymap-prefix (kbd "C-c p"))
- (use-package projectile-direnv
- :ensure t
- :init (add-hook 'projectile-mode-hook 'projectile-direnv-export-variables))
- (setq projectile-completion-system 'ivy)
- (setq projectile-enable-caching t)
- (setq projectile-indexing-method 'alien)
- (setq projectile-create-missing-test-files t)
- (setq projectile-switch-project-action #'projectile-commander)
- (def-projectile-commander-method ?s
- "Open a *shell* buffer for the project."
- (projectile-run-shell))
- (def-projectile-commander-method ?c
- "Run `compile` in the project."
- (projectile-compile-project nil))
- (def-projectile-commander-method ?d
- "Open project root in dired."
- (projectile-dired))
- (def-projectile-commander-method ?F
- "Git fetch on the project."
- (magit-status)
- (call-interactively #'magit-fetch-all-prune)))
- #+END_SRC
-
-*** Perspective
-
- [[https://github.com/nex3/perspective-el][Perspective]] is a minor mode that provides the ability to manage
- different workspaces. It integrates well with projectile.
-
- #+BEGIN_SRC emacs-lisp
- (use-package perspective
- :ensure t
- :init
- (progn
- (setq persp-show-modestring nil)
- (add-hook 'persp-switch-hook 'hack-dir-local-variables-non-file-buffer)
- (persp-mode)))
- (use-package persp-projectile
- :ensure t
- :requires perspective
- :bind* (("M-m SPC p" . projectile-persp-switch-project)))
- #+END_SRC
-** Tags based navigation
-
- [[https://www.gnu.org/software/global/][GNU global]] is a code tagging system and I use it to navigate the code base. It can use different backends, including [[http://ctags.sourceforge.net][ctags]].
-
- #+BEGIN_SRC emacs-lisp
- (use-package ggtags
- :ensure t
- :diminish ggtags-mode
- :bind* (("M-m T" . ggtags-find-tag-regexp)
- ("M-m g t" . ggtags-create-tags)
- ("M-m g T" . ggtags-update-tags))
- :init
- (setq-local imenu-create-index-function #'ggtags-build-imenu-index)
- (add-hook 'prog-mode-hook 'ggtags-mode))
- #+END_SRC
-
+*** TODO Projectile
+*** TODO Perspective
+** TODO Tags based navigation
* Visual ๐
** Color theme(s)
@@ -1385,41 +1165,7 @@
:init (add-hook 'prog-mode-hook
'rainbow-identifiers-mode))
#+END_SRC
-** Hydras
-*** Activate minor modes
-
- There are many minor modes that I don't need to be active all the
- time. And this hydra activates them on my command. This replace my
- previous =toogle-map=.
-
- #+BEGIN_SRC emacs-lisp
- (defhydra vde/hydra-of-activate (:color red
- :hint nil)
- "
- _f_: fill _n_: number _v_: wrap _i_: indent _k_: which-key _q_: quit
- _t_: time _u_: truncate _y_: yasnippet _m_: margin _s_: smartparens
- _l_: flyspell _a_: auto-comp _d_: fold _g_: ggtags _e_: error
- "
- ("f" auto-fill-mode)
- ("t" display-time-mode)
- ("l" flyspell-mode)
- ("n" linum-mode)
- ("u" toggle-truncate-lines)
- ("a" company-mode)
- ("v" visual-line-mode)
- ("y" yas-global-mode)
- ("d" global-origami-mode)
- ("i" highlight-indentation-mode)
- ("m" fci-mode)
- ("g" ggtags-mode)
- ("k" which-key-mode)
- ("s" smartparens-strict-mode)
- ("e" global-flycheck-mode)
- ("q" nil :color blue))
- (bind-keys*
- ("M-m g a" . vde/hydra-of-activate/body))
- #+END_SRC
-
+** TODO Hydras
* Editing ๐ฆ
For writing text, I prefer Emacs to do line wrapping for me. Also, superfluous
@@ -1438,7 +1184,7 @@
)
#+END_SRC
-** Selection
+** TODO Selection
One feature of IntelliJ that really rocks is the =C-w= shortcuts
that select "intelligently". =exand-region= is doing this for
@@ -1451,91 +1197,7 @@
letters after pressing prefix =i= will select the complete blocks. To do this,
we need to define a few functions.
- #+BEGIN_SRC emacs-lisp
- (defun sk/mark-inside-org-code ()
- "Select inside an Org code block without the org specific syntax"
- (interactive)
- (er/mark-org-code-block)
- (next-line 1)
- (exchange-point-and-mark)
- (previous-line 1)
- (end-of-line 1))
-
- (defun sk/mark-around-LaTeX-environment ()
- "Select around a LaTeX environment with both the begin and end keywords"
- (interactive)
- (er/mark-LaTeX-inside-environment)
- (previous-line 1)
- (exchange-point-and-mark)
- (next-line 1)
- (end-of-line 1))
-
- (defun sk/mark-around-word ()
- "Mark the word and the adjacent whitespace"
- (interactive)
- (er/mark-word)
- (exchange-point-and-mark)
- (forward-char 1))
-
- (defun sk/mark-around-text-paragraph ()
- "Mark the paragraph and the newline"
- (interactive)
- (er/mark-text-paragraph)
- (exchange-point-and-mark)
- (next-line 1))
-
- (defun sk/mark-inside-LaTeX-math ()
- "Mark inside the latex math"
- (interactive)
- (er/mark-LaTeX-math)
- (forward-char 1)
- (exchange-point-and-mark)
- (backward-char 1))
-
- (defun sk/mark-inside-python-block ()
- "Mark inside a python block"
- (interactive)
- (er/mark-python-block)
- (next-line 1))
-
- (defun sk/mark-around-symbol ()
- "Mark around a symbol including the nearby whitespace"
- (interactive)
- (er/mark-symbol)
- (exchange-point-and-mark)
- (forward-char 1))
- #+END_SRC
-
- #+BEGIN_SRC emacs-lisp
- (use-package expand-region
- :ensure t
- :bind* (("C-=" . er/expand-region)
- ("M-m a o" . er/mark-org-code-block)
- ("M-m a w" . sk/mark-around-word)
- ("M-m a p" . sk/mark-around-text-paragraph)
- ("M-m a f" . er/mark-defun)
- ("M-m a e" . sk/mark-around-LaTeX-environment)
- ("M-m a t" . er/mark-LaTeX-math)
- ("M-m a m" . er/mark-python-block)
- ("M-m a q" . er/mark-outside-quotes)
- ("M-m a b" . er/mark-outside-pairs)
- ("M-m a u" . er/mark-url)
- ("M-m a c" . er/mark-comment)
- ("M-m a v" . sk/mark-around-symbol)
- ("M-m i p" . er/mark-text-paragraph)
- ("M-m i f" . er/mark-defun)
- ("M-m i w" . er/mark-word)
- ("M-m i e" . er/mark-LaTeX-inside-environment)
- ("M-m i t" . sk/mark-inside-LaTeX-math)
- ("M-m i u" . er/mark-url)
- ("M-m i c" . er/mark-comment)
- ("M-m i b" . er/mark-inside-pairs)
- ("M-m i q" . er/mark-inside-quotes)
- ("M-m i o" . sk/mark-inside-org-code)
- ("M-m i m" . sk/mark-inside-python-block)
- ("M-m i v" . er/mark-symbol)))
- #+END_SRC
-
+*** TODO expand regien
** Comment/Uncomment region
Something I'm really use to, with IntelliJ or Eclipse, is being
@@ -1558,56 +1220,8 @@
to =M-;=). This adds a comment at the right place (at the end of
the line, up the method, etc..
-** Smartparens
-
- [[https://github.com/Fuco1/smartparens][This package]] aims to be the one-stop solution for semantic language in any
- language. It is a little hard to wrap your head around though. I mostly use it
- for its wrapping and unwrapping features more than semantic navigation.
-
- #+BEGIN_SRC emacs-lisp
- (use-package smartparens
- :ensure t
- :demand t
- :bind* (("M-m m j" . sp-down-sexp)
- ("M-m m k" . sp-backward-up-sexp)
- ("M-m m h" . sp-backward-down-sexp)
- ("M-m m l" . sp-up-sexp)
- ("M-m m f" . sp-forward-sexp)
- ("M-m m b" . sp-backward-sexp)
- ("M-m m a" . sp-beginning-of-sexp)
- ("M-m m e" . sp-end-of-sexp)
- ("M-m m n" . sp-next-sexp)
- ("M-m m p" . sp-previous-sexp)
- ("M-m m >" . sp-forward-barf-sexp)
- ("M-m m <" . sp-backward-barf-sexp)
- ("M-m m )" . sp-forward-slurp-sexp)
- ("M-m m (" . sp-backward-slurp-sexp)
- ("M-m m x" . sp-transpose-sexp)
- ("M-m m d" . sp-kill-sexp)
- ("M-m m y" . sp-copy-sexp)
- ("M-m m u" . sp-unwrap-sexp)
- ("M-m m U" . sp-backward-unwrap-sexp)
- ("M-m m C" . sp-convolute-sexp)
- ("M-m m r" . sp-raise-sexp)
- ("M-m m s" . sp-split-sexp)
- ("M-m m S" . sp-splice-sexp)
- ("M-m m F" . sp-splice-sexp-killing-forward)
- ("M-m m B" . sp-splice-sexp-killing-backward)
- ("M-m m A" . sp-splice-sexp-killing-around))
- :diminish smartparens-mode
- :diminish smartparens-strict-mode
- :config
- (require 'smartparens-config)
- (smartparens-global-mode)
- (show-smartparens-global-mode)
- (which-key-add-key-based-replacements
- "M-m m" "move prefix")
- :init
- (add-hook 'prog-mode-hook 'turn-on-smartparens-strict-mode)
- (add-hook 'markdown-mode-hook 'turn-on-smartparens-strict-mode))
- #+END_SRC
-
-** Killing
+** TODO Smartparens
+** TODO Killing
Let's define few advice with =kill-ring-save= and =kill-region=.
@@ -1620,89 +1234,9 @@
(line-beginning-position 2)))))
#+END_SRC
- Let's use a well done package for the killing machine :D.
-
- #+BEGIN_SRC emacs-lisp
- (use-package easy-kill
- :ensure t
- :bind (([remap kill-ring-save] . easy-kill)
- ([remap mark-sexp] . easy-mark))
- :config
- (use-package easy-kill-extras
- :ensure t
- :bind (([remap mark-word] . easy-mark-word)
- ([remap zap-to-char] . easy-mark-to-char))
- :config (add-to-list 'easy-kill-alist '(?^ backward-line-edge ""))
- (add-to-list 'easy-kill-alist '(?$ forward-line-edge ""))
- (add-to-list 'easy-kill-alist '(?b buffer ""))
- (add-to-list 'easy-kill-alist '(?< buffer-before-point ""))
- (add-to-list 'easy-kill-alist '(?> buffer-after-point ""))
- (add-to-list 'easy-kill-alist '(?f string-to-char-forward ""))
- (add-to-list 'easy-kill-alist '(?F string-up-to-char-forward ""))
- (add-to-list 'easy-kill-alist '(?t string-to-char-backward ""))
- (add-to-list 'easy-kill-alist '(?T string-up-to-char-backward ""))))
- #+END_SRC
-
-** Interactive edit
-
- [[https://www.masteringemacs.org/article/iedit-interactive-multi-occurrence-editing-in-your-buffer][Iedit-mode]] is the bomb. Quick, fast edits of every symbol selected. Although [[*Multiple
- cursors][Multiple cursors]]
- has some more features, this is the best choice for quick renaming of variables/words.
-
- #+BEGIN_SRC emacs-lisp
- (use-package iedit
- :ensure t
- :commands (iedit-mode)
- :bind* (("M-m *" . iedit-mode)))
- #+END_SRC
-
-** Multiple cursors
-
- [[https://github.com/magnars/multiple-cursors.el][Multiple cursors]] is an amazing, but admittedly quirky, package that needs
- some setting up. Also, this conflicts with [[*Modalka mode][Modalka mode]] and when having
- multiple cursors, it's best to stay in Emacs state. Since I use this for
- quick edits, I'm fine with this. Also, [[*Region bindings mode][Region bindings mode]] acts as a glue
- between this and its corresponding modal binding
-
- #+BEGIN_SRC emacs-lisp
- (use-package multiple-cursors
- :ensure t
- :bind* (("M-m ." . mc/edit-lines)
- ("M-m >" . mc/mark-next-like-this)
- ("M-m ," . mc/skip-to-next-like-this)
- ("M-m <" . mc/mark-previous-like-this)))
- #+END_SRC
-
-*** Region bindings mode
-
- [[https://github.com/fgallina/region-bindings-mode][This]] is also kind of a modal mode. This activates only when a region is active. I use it exclusively for multiple cursors.
-
- #+BEGIN_SRC emacs-lisp
-(use-package region-bindings-mode
- :ensure t
- :demand t
- :bind (:map region-bindings-mode-map
- ("<" . mc/mark-previous-like-this)
- ("," . mc/skip-to-next-like-this)
- (">" . mc/mark-next-like-this)
- ("." . mc/edit-lines))
- :diminish (region-bindings-mode . "ฯ")
- :config
- (progn
- (add-hook 'after-init-hook 'region-bindings-mode-enable)))
- #+END_SRC
-
-** Moving text around
-
- Allows to move the current line or region up/down. The source code is
- on the Wiki: http://www.emacswiki.org/emacs/move-text.el
-
- #+BEGIN_SRC emacs-lisp
- (use-package move-text
- :ensure t
- :config (move-text-default-bindings))
- #+END_SRC
-** Snippets
+*** TODO easy-kill
+** TODO Moving text around
+** TODO Snippets
[[https://github.com/capitaomorte/yasnippet][Yasnippets]] gives you the snippets functionality. It also comes bundled
with a lot of pre-configured snippets and is extensible via Emacs
@@ -2313,7 +1847,6 @@
(org-tags-view (null current-prefix-arg) tag))
#+END_SRC
-
** Code blocks
We are using a lot of code block in org-mode, in this file for example ; let's
@@ -2386,70 +1919,6 @@
'append)
#+END_SRC
-** Mobile (temporarly disable)
-
- Define some stuff for the /org-mobile/ synchronization. The
- =org-mobile-directory= is a on a remote ssh, defined in the
- =~/.emacs.d/user.el= file (using =(setq personal-org-mobile-directory "")=).
-
- #+BEGIN_SRC emacs-lisp :tangle no
- (require 'org-mobile)
- (setq org-mobile-directory personal-org-mobile-directory
- org-mobile-inbox-for-pull (expand-file-name org-inbox-file org-todos-directory)
- org-mobile-files '(org-todos-directory))
- #+END_SRC
-
- Let's also configure auto push, asynchronously like in this
- [[https://gist.github.com/mrvdb/3111823][gist]]. One thing that I should add though is to auto-commit too
- (because my todos are on git).
-
- #+BEGIN_SRC emacs-lisp :tangle no
- (defun notify-push (result)
- (notifications-notify
- :title "Push complete"
- :body (format "Org-mobile-push: %s" result)
- ))
-
- ;; Fork the work of pushing to mobile
- (defun fork-org-push-mobile ()
- (interactive)
- (async-start
- ;; What to do in the child process
- `(lambda ()
- (require 'org)
- ,(async-inject-variables "org-\\(mobile-\\|directory\\)")
- (org-mobile-push))
- ; What to do when it finishes
- (lambda (result)
- (notify-push result))))
-
- ;; Define a timer variable
- (defvar org-mobile-push-timer nil
- "Timer that `org-mobile-push-timer' used to reschedule itself, or nil.")
-
- ;; Push to mobile when the idle timer runs out
- (defun org-mobile-push-with-delay (secs)
- (when org-mobile-push-timer
- (cancel-timer org-mobile-push-timer))
- (setq org-mobile-push-timer
- (run-with-idle-timer
- (* 1 secs) nil 'fork-org-push-mobile)))
-
- ;; After saving files, start a 30 seconds idle timer after which we
- ;; are going to push
- (add-hook 'after-save-hook
- (lambda ()
- (when (eq major-mode 'org-mode)
- (dolist (file (org-mobile-files-alist))
- (if (string= (expand-file-name (car file)) (buffer-file-name))
- (org-mobile-push-with-delay 30)))
- )))
-
- ;; At least run it once a day, but no need for a delay this time
- (run-at-time "12:05" 86400 '(lambda () (org-mobile-push-with-delay 1)))
- #+END_SRC
-
-
** Archives
We want to be able to archive some /done/ projects. Let's load
@@ -2530,7 +1999,6 @@
| | Less Urgent | Urgent |
| | /no tag urgent/ | /tag urgent/ |
-
** Agenda(s)
Set custom agendas.. For the syntax, look in worg : [[http://orgmode.org/worg/org-tutorials/advanced-searching.html][Advanced
@@ -2790,7 +2258,6 @@
:ensure t)
#+END_SRC
-
** Protocol
Trying out org-protocol based on
@@ -3170,46 +2637,6 @@
(setq magit-push-always-verify nil)
(setq magit-last-seen-setup-instructions "2.1.0"))
#+END_SRC
-** Highlight diffs
-
- [[https://github.com/dgutov/diff-hl][Highlight git diffs on the fly]].
-
- #+BEGIN_SRC emacs-lisp
- (use-package diff-hl
- :ensure t
- :commands (global-diff-hl-mode
- diff-hl-mode
- diff-hl-next-hunk
- diff-hl-previous-hunk
- diff-hl-mark-hunk
- diff-hl-diff-goto-hunk
- diff-hl-revert-hunk)
- :bind* (("M-m ] h" . diff-hl-next-hunk)
- ("M-m [ h" . diff-hl-previous-hunk)
- ("M-m i h" . diff-hl-mark-hunk)
- ("M-m a h" . diff-hl-mark-hunk)
- ("M-m g h" . diff-hl-diff-goto-hunk)
- ("M-m g H" . diff-hl-revert-hunk))
- :config
- (global-diff-hl-mode)
- (diff-hl-flydiff-mode)
- (diff-hl-margin-mode)
- (diff-hl-dired-mode))
- #+END_SRC
-
-** Git time machine
-
- The ability to move to past versions of the current file, [[https://github.com/pidu/git-timemachine][like a time machine]].
-
- #+BEGIN_SRC emacs-lisp
- (use-package git-timemachine
- :ensure t
- :commands (git-timemachine-toggle
- git-timemachine-switch-branch)
- :bind* (("M-m g l" . git-timemachine-toggle)
- ("M-m g L" . git-timemachine-switch-branch)))
- #+END_SRC
-
** Git annex support
[[http://git-annex.branchable.com/][Git-annex]] is a wonderful piece of software that I use a lot in my repositories.
@@ -3302,7 +2729,6 @@
(company-quickhelp-mode)))
#+END_SRC
-
** Eshell
Eshell is a built-in shell that is written in Lisp. It's pretty good.
@@ -3371,41 +2797,6 @@
(kill-buffer (current-buffer))))
#+END_SRC
-** Multi term
-
- [[https://www.emacswiki.org/emacs/MultiTerm][Multi term]] doesn't provide any additional commands to built-in Emacs
- ~term~ and ~ansi-term~ but helps in managing multiple terminal
- buffers.
-
- #+BEGIN_SRC emacs-lisp
- (use-package multi-term
- :ensure t
- :commands (multi-term)
- :bind* (("M-m SPC u" . sk/multi-term-vertical)
- ("M-m SPC U". sk/multi-term-horizontal)))
- #+END_SRC
-
- Let's also define a couple of wrapper functions to open this in
- splits.
-
- #+BEGIN_SRC emacs-lisp
- ;; Vertical split multi-term
- (defun sk/multi-term-vertical ()
- "opens up a new terminal in the directory associated with the current buffer's file."
- (interactive)
- (split-window-right)
- (other-window 1)
- (multi-term))
-
- ;; Horizontal split multi-term
- (defun sk/multi-term-horizontal ()
- "opens up a new terminal in the directory associated with the current buffer's file."
- (interactive)
- (split-window-below)
- (other-window 1)
- (multi-term))
- #+END_SRC
-
** Compilation buffer
Let's configure the compilation-mode to follow the compilation, not waiting
@@ -3433,7 +2824,7 @@
(add-hook 'compilation-filter-hook 'my/colorize-compilation-buffer)
#+END_SRC
-** Quickrun
+** TODO Quickrun
[[https://github.com/syohex/emacs-quickrun][This package]] helps you quickly run little pieces of code.
@@ -3447,7 +2838,7 @@
quickrun-compile-only
quickrun-replace-region))
#+END_SRC
-** Error checking
+** TODO Error checking
#+BEGIN_QUOTE
Flycheck is a modern on-the-fly syntax checking extension for GNU Emacs 24, intended as replacement for the older Flymake extension which is part of GNU Emacs.
@@ -3520,7 +2911,7 @@
:ensure t)
#+END_SRC
-** Lisp
+** TODO Lisp
Let's install some modes that proves to be useful for any LISP.
.emacs.d/init.el
@@ -32,16 +32,16 @@
(message "Loaded packages in %.3fs" elapsed))
;; Make sure we have a decent and recent org-mode version
-;; (unload-org-mode)
-;; (require 'org)
-;; (when (string-match "^[1234567]" (org-version))
-;; (progn
-;; (warn "Org-mode is out of date. We expect org 8 or higher, but instead we have %s" (org-version))
-;; (warn "Force the installation from org elpa.")
-;; (package-install 'org)
-;; (unload-org-mode)
-;; (require 'org)
-;; ))
+(unload-org-mode)
+(require 'org)
+(when (string-match "^[12345678]" (org-version))
+ (progn
+ (warn "Org-mode is out of date. We expect org 8 or higher, but instead we have %s" (org-version))
+ (warn "Force the installation from org elpa.")
+ (package-install 'org)
+ (unload-org-mode)
+ (require 'org)
+ ))
(setq org-root-directory (substitute-env-in-file-name "$HOME/desktop/org"))