From b75e523f577287cdaa4b4c1e8f831c1233a5d187 Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Wed, 21 Nov 2018 19:50:42 +0100 Subject: [PATCH] added org agenda --- .emacs | 175 +++++++- emacs.html | 1264 +++++++++++++++++++++++++++++++--------------------- 2 files changed, 923 insertions(+), 516 deletions(-) diff --git a/.emacs b/.emacs index 8ce0360..e8ec7ac 100644 --- a/.emacs +++ b/.emacs @@ -1,4 +1,4 @@ -;; Toms Emacs Config - portable - version ("20181117.01") -*-emacs-lisp-*- +;; Toms Emacs Config - portable - version ("20181121.01") -*-emacs-lisp-*- ;; * Introduction ;; This is my emacs config, it is more than twenty years old. It @@ -713,6 +713,9 @@ ;; - (re-)added electric pair mode to eval-expression ;; - diret -lt +;; 20181121.01 +;; - added org agenda + ;; ** TODO ;; - check helpful https://github.com/wilfred/helpful @@ -740,7 +743,7 @@ ;; My emacs config has a version (consisting of a timestamp with a ;; serial), which I display in the mode line. So I can clearly see, if ;; I'm using an outdated config somewhere. -(defvar tvd-emacs-version "20181117.01") +(defvar tvd-emacs-version "20181121.01") ;; -------------------------------------------------------------------------------- @@ -3753,6 +3756,9 @@ down and unfold it, otherwise jump paragraph as usual." "* TODO %^{title}\n%u\n** Kostenstelle\n** Contact Peer\n** Contact Customer\n** Aufträge\n** Daten\n** Notizen\n %i%?\n" :prepend t :jump-to-captured t) + ("t" "Todo Item" entry (file+headline tvd-org-file "Heute") + "* TODO %^{title}\n:LOGBOOK:\n%u:END:\n" :prepend t :immediate-finish t) + ("j" "Journal" entry (file+headline tvd-org-file "Kurznotizen") "* TODO %^{title}\n%u\n %i%?\n" :prepend t :jump-to-captured t) @@ -3774,7 +3780,172 @@ down and unfold it, otherwise jump paragraph as usual." (info-initialize) (add-to-list 'Info-directory-list (expand-file-name "~/.emacs.d/lisp/org/doc"))) +;; -------------------------------------------------------------------------------- +;; *** org agenda mode +;; I use org mode for along time now, primarily at work, but did not +;; use agenda. Instead I developed the habit of maintaining one org +;; entry which contains just a list with all things to do today. I +;; just edited this list manually and it worked. However, recently I +;; found out that agenda provides lots of features and commands +;; precisely for what I already did manually. So, now, finally (as of +;; november 2018) I switch to using the agenda. + +;; My agenda use is very simple though: I don't use any scheduling, no +;; priorities, no recurring events, no daily or other time based +;; views. I just keep a list of TODO entries and another of entries in +;; WAIT state, that's it. All those entries are located under a +;; special org entry with the title "Heute" and the category (as +;; property) WORK, which I use for filtering out agenda items. + +;; The general workflow is as follows: I execute (agenda) which starts +;; directly my custom agenda view. It lists open TODO items and +;; waiting WAIT items below. If I press `n', I will be asked for a +;; title and a new TODO item appears in my agenda. I can press `d' to +;; mark it as DONE, it will also be archived into a subsibling below +;; "HEUTE". I can press `w' to move an item into WAIT state and I can +;; press `a' to add text to the org entry under point (like "waiting +;; for customer email"). + +;; So, I don't use my regular org entries, which are in most cases +;; very large containing lots of information, as agenda items, but +;; only very short ones which act as reminders about what work I have +;; to do. However, since I have the org buffer always opened and +;; visible in a split buffer next to the agenda, it is no problem to +;; go to such a deep entry for editing or viewing. + +(require 'org-agenda) + +;; This is my one and only agenda custom view, it displays TODO items +;; below entries categorized as WORK and WAIT items under the same +;; category. The cool thing here is, that the `tags' agenda view can +;; be used to filter for properties as well. In order to have this +;; working the following property drawer must exist in an entry with +;; TODO siblings: +;; +;; * START Arbeit +;; :PROPERTIES: +;; :CATEGORY: WORK +;; :END: +;; ** TODO a thing to do +;; ** WAIT a thing waiting for something +;; +(setq org-agenda-custom-commands + '(("o" "Daily TODO Tasks" + ((tags "CATEGORY=\"WORK\"" + ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo '("CANCEL" "START" "DONE" "WAIT"))) + (org-agenda-overriding-header "Tasks to do today:") + (org-agenda-follow-mode t) + (org-agenda-entry-text-mode t))) + (tags "CATEGORY=\"WORK\"" + ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo '("CANCEL" "START" "DONE" "TODO"))) + (org-agenda-overriding-header "\nTasks Waiting:")))) + ((org-agenda-compact-blocks t))))) + +;; A shortcut to reach my custom view directly +(defun agenda () + "Visit my org agenda directly." + (interactive) + (org-agenda nil "o")) + +;; Add a line of text to the top of an existing TODO entry and refresh +;; the agenda +(defun tvd-org-agenda-edit-entry (note) + "Insert a note as plain text into an entry" + (interactive "sEnter note: ") + (save-excursion + (org-agenda-switch-to) + (end-of-line) + (newline) + (insert note)) + (switch-to-buffer "*Org Agenda*") + (org-agenda-redo t)) + +;; Mark an entry as DONE, archive it to an archive sibling and refresh +;; the agenda +(defun tvd-org-agenda-done() + (interactive) + (org-agenda-todo 'done) + (org-agenda-archive-to-archive-sibling) + (org-agenda-redo t)) + +;; Mark an entry as WAIT, archive it to an archive sibling and refresh +;; the agenda +(defun tvd-org-agenda-wait() + (interactive) + (org-agenda-todo "WAIT") + (org-agenda-redo t)) + +;; A wrapper which executes an org capture directly. `t' is the +;; shortcut for the capture, defined above in org mode. +(defun tvd-org-agenda-capture (&optional vanilla) + "Capture a task in agenda mode, using the date at point. + +If VANILLA is non-nil, run the standard `org-capture'." + (interactive "P") + (if vanilla + (org-capture) + (let ((org-overriding-default-time (org-get-cursor-date))) + (org-capture nil "t") + (org-agenda-redo t)))) + +;; Since I learned to love hydra, I have one for my agenda as well, of course: +(defhydra hydra-org-agenda (:color blue + :pre (setq which-key-inhibit t) + :post (setq which-key-inhibit nil) + :hint none) + " +Org Agenda (_q_uit) + +^Tasks^ ^Options^ ^Movement^ +-^^^^^^------------------------------------------------------------------------------------- +_n_: create new task _f_: follow =?f? ENTER: switch to entry +_d_: mark task done and archive _e_: entry =?e? C-: go one entry up +_w_: mark task waiting ^^ C-: go one entry down +_t_: toggle todo state ^Marking^ M-: move entry up +_z_: archive task _m_: mark entry M-: move entry down +_+_: increase prio _u_: un-mark entry +_-_: decrease prio _U_: un-mark all +_g_: refresh _B_: bulk action +_s_: save org buffer(s) +_a_: add a note to the entry + +" + ("a" tvd-org-agenda-edit-entry nil) + ("n" tvd-org-agenda-capture nil) + ("g" org-agenda-redo nil) + ("t" org-agenda-todo) + ("d" tvd-org-agenda-done nil) + ("w" tvd-org-agenda-wait nil) + ("z" org-agenda-archive-to-archive-sibling nil) + ("+" org-agenda-priority-up nil) + ("-" org-agenda-priority-down nil) + ("s" org-save-all-org-buffers nil) + ("f" org-agenda-follow-mode + (format "% -3S" org-agenda-follow-mode)) + ("e" org-agenda-entry-text-mode + (format "% -3S" org-agenda-entry-text-mode)) + ("m" org-agenda-bulk-mark nil) + ("u" org-agenda-bulk-unmark nil) + ("U" org-agenda-bulk-remove-all-marks nil) + ("B" org-agenda-bulk-action nil) + ("q" nil nil :color red)) + +;; Configuration and key bindings for org agenda (same as in the hydra) +(add-hook 'org-agenda-mode-hook '(lambda () (progn + (setq org-agenda-follow-mode t + org-log-into-drawer t + org-agenda-entry-text-mode t) + (local-set-key (kbd "n") 'tvd-org-agenda-capture) + (local-set-key (kbd "a") 'tvd-org-agenda-edit-entry) + (local-set-key (kbd "d") 'tvd-org-agenda-done) + (local-set-key (kbd "w") 'tvd-org-agenda-wait) + (local-set-key (kbd "f") 'org-agenda-follow-mode) + (local-set-key (kbd "e") 'org-agenda-entry-text-mode) + (local-set-key (kbd "z") 'org-agenda-archive-to-archive-sibling) + (local-set-key (kbd "C-") 'org-agenda-previous-line) + (local-set-key (kbd "C-") 'org-agenda-next-line) + (local-set-key (kbd "?") 'hydra-org-agenda/body)))) ;; -------------------------------------------------------------------------------- ;; *** org table mode diff --git a/emacs.html b/emacs.html index 78af9d5..58c0dee 100644 --- a/emacs.html +++ b/emacs.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -232,213 +232,214 @@ for the JavaScript code in this tag.

Table of Contents

-Toms Emacs Config - portable - version ("20181117.01") -*-emacs-lisp-*- +Toms Emacs Config - portable - version ("20181121.01") -*-emacs-lisp-*-

-
-

1 Introduction

+
+

1 Introduction

This is my emacs config, it is more than twenty years old. It @@ -492,11 +493,11 @@ outshine-to-html, written by myself, see below.

-
-

2 Config Log, Trivia, Notes, Changes

+
+

2 Config Log, Trivia, Notes, Changes

-
-

2.1 Changelog

+
+

2.1 Changelog

20160420.03: @@ -1750,11 +1751,18 @@ all magit buffers and restores window setup

  • (re-)added electric pair mode to eval-expression
  • diret -lt
  • + +

    +20181121.01 +

    +
      +
    • added org agenda
    • +
    -
    -

    2.2 TODO

    +
    +

    2.2 TODO

    -
    -

    2.3 Parking Lot / Snippets

    +
    +

    2.3 Parking Lot / Snippets

    Snippets which maybe of use in the future

    -
    -

    2.3.1 buffer-local hook

    +
    +

    2.3.1 buffer-local hook

    (with-current-buffer (get-buffer "scratch") @@ -1790,8 +1798,8 @@ Snippets which maybe of use in the future

    -
    -

    2.4 .emacs config version

    +
    +

    2.4 .emacs config version

    My emacs config has a version (consisting of a timestamp with a @@ -1799,7 +1807,7 @@ serial), which I display in the mode line. So I can clearly see, if I'm using an outdated config somewhere.

    -
    (defvar tvd-emacs-version "20181117.01")
    +
    (defvar tvd-emacs-version "20181121.01")
     
    @@ -1808,11 +1816,11 @@ I'm using an outdated config somewhere.
    -
    -

    3 System Specifics

    +
    +

    3 System Specifics

    -
    -

    3.1 Global init file+dir vars, portable

    +
    +

    3.1 Global init file+dir vars, portable

    • added dev function which opens a new development frame
    • @@ -1850,8 +1858,8 @@ all modes and extensions are located here
    -
    -

    3.2 Shortcut Mode - mode specific help about my own customizations

    +
    +

    3.2 Shortcut Mode - mode specific help about my own customizations

    FIXME: complete @@ -1870,8 +1878,8 @@ all modes and extensions are located here


    -
    -

    3.3 Fontlock-mode - use syntax highlighting on graphical displays

    +
    +

    3.3 Fontlock-mode - use syntax highlighting on graphical displays

    look: emacswiki @@ -1888,8 +1896,8 @@ look: emacswiki


    -
    -

    3.4 line-cursor in console

    +
    +

    3.4 line-cursor in console

    better visibility of cursor in console sessions @@ -1905,8 +1913,8 @@ better visibility of cursor in console sessions


    -
    -

    3.5 Backup Config

    +
    +

    3.5 Backup Config

    I save backup files in a central location below the init dir, that @@ -1977,8 +1985,8 @@ This is system specific and only matches special host names.


    -
    -

    3.6 console backspace fix

    +
    +

    3.6 console backspace fix

    make backspace work in console sessions @@ -1991,8 +1999,8 @@ make backspace work in console sessions


    -
    -

    3.7 hide menu- and tool-bar

    +
    +

    3.7 hide menu- and tool-bar

    I prefer a bare bones emacs window without any distractions, so turn them off. @@ -2008,8 +2016,8 @@ I prefer a bare bones emacs window without any distractions, so turn them off.


    -
    -

    3.8 stay silent on startup

    +
    +

    3.8 stay silent on startup

    (setq initial-scratch-message "")
    @@ -2022,8 +2030,8 @@ I prefer a bare bones emacs window without any distractions, so turn them off.
     
    -
    -

    3.9 y means yes

    +
    +

    3.9 y means yes

    y is shorter than yes and less error prone. @@ -2036,8 +2044,8 @@ y is shorter than yes and less error prone.


    -
    -

    3.10 show col in modeline

    +
    +

    3.10 show col in modeline

    very useful to know current column @@ -2050,8 +2058,8 @@ very useful to know current column


    -
    -

    3.11 file or buffer in title

    +
    +

    3.11 file or buffer in title

    this can be seen in xmobar @@ -2065,8 +2073,8 @@ this can be seen in xmobar


    -
    -

    3.12 avoid invalid files

    +
    +

    3.12 avoid invalid files

    (setq require-final-newline t)
    @@ -2076,8 +2084,8 @@ this can be seen in xmobar
     
    -
    -

    3.13 prepare load-path

    +
    +

    3.13 prepare load-path

    where to look for extensions: @@ -2105,8 +2113,8 @@ modules


    -
    -

    3.14 Hydra

    +
    +

    3.14 Hydra

    Used here and there below, loaded as early as possible @@ -2118,8 +2126,8 @@ Used here and there below, loaded as early as possible

    -
    -

    3.15 byte-compile all of them, if needed

    +
    +

    3.15 byte-compile all of them, if needed

    handy function to recompile all lisp files @@ -2134,8 +2142,8 @@ handy function to recompile all lisp files


    -
    -

    3.16 increase fontsize with ctrl-+ and ctrl--

    +
    +

    3.16 increase fontsize with ctrl-+ and ctrl--

    I use those bindings everywhere (firefox, terminal, etc), and in @@ -2161,11 +2169,11 @@ emacs as well.


    -
    -

    3.17 WINDOW management stuff

    +
    +

    3.17 WINDOW management stuff

    -
    -

    3.17.1 resize windows by keyboard

    +
    +

    3.17.1 resize windows by keyboard

    Very practical: resize windows easily. @@ -2182,8 +2190,8 @@ hit C-c C-r then use cursor keys to resize, <ret> to finish

    -
    -

    3.17.2 switch windows with MS-WINDOWS key

    +
    +

    3.17.2 switch windows with MS-WINDOWS key

    (require 'windmove)
    @@ -2194,8 +2202,8 @@ hit C-c C-r then use cursor keys to resize, <ret> to finish
     
    -
    -

    3.17.3 M-o switch window or buffer

    +
    +

    3.17.3 M-o switch window or buffer

    The key M-o has different functions depending on context: @@ -2327,8 +2335,8 @@ Use only in X11 emacs - setting M-O inside console causes <up> and


    -
    -

    3.17.4 Split window to 4 parts

    +
    +

    3.17.4 Split window to 4 parts

    (defun tvd-quarter-windows ()
    @@ -2346,8 +2354,8 @@ Use only in  X11 emacs - setting M-O inside console  causes <up> and
     
    -
    -

    3.17.5 Remember and Restore Window Configurations - winner mode

    +
    +

    3.17.5 Remember and Restore Window Configurations - winner mode

    (winner-mode 1)
    @@ -2362,8 +2370,8 @@ keybindings: C-c right   - winner-redo
     
    -
    -

    3.18 re-read a modified buffer

    +
    +

    3.18 re-read a modified buffer

    F5 == reload file if it has been modified by another process, shift @@ -2388,8 +2396,8 @@ because Xmonad


    -
    -

    3.19 global TAB/Indent config

    +
    +

    3.19 global TAB/Indent config

    I use spaces everywhere but Makefiles. If I encounter TABs I @@ -2429,8 +2437,8 @@ Use normal tabs in makefiles


    -
    -

    3.20 handy aliases

    +
    +

    3.20 handy aliases

    M-x q r <ret> is short enough for me, no need for key bindings for @@ -2461,8 +2469,8 @@ those


    -
    -

    3.21 various settings

    +
    +

    3.21 various settings

    point stays while scrolling @@ -2515,8 +2523,8 @@ I'm grown up!


    -
    -

    3.22 load imenu

    +
    +

    3.22 load imenu

    (define-key global-map [C-down-mouse-2] 'imenu)
    @@ -2526,8 +2534,8 @@ I'm grown up!
     
    -
    -

    3.23 copy/paste Config

    +
    +

    3.23 copy/paste Config

    Related: @@ -2594,8 +2602,8 @@ marked region automatically copied, also on win


    -
    -

    3.24 use more mem

    +
    +

    3.24 use more mem

    are you from the past? @@ -2608,8 +2616,8 @@ are you from the past?


    -
    -

    3.25 better file name completion

    +
    +

    3.25 better file name completion

    Complete filenames case insensitive and ignore certain files during completion. @@ -2639,8 +2647,8 @@ via -

    3.26 abbreviations

    +
    +

    3.26 abbreviations

    Do I really need those anymore? Added ca 1999… @@ -2670,8 +2678,8 @@ do NOT ask to save abbrevs on exit

    -
    -

    3.27 meaningful names for buffers with the same name

    +
    -
    -

    3.28 packages

    +
    +

    3.28 packages

    I dont need it all the time and only for experimentation, so lets @@ -2713,8 +2721,8 @@ only use melpa on demand


    -
    -

    3.29 My own global variables

    +
    +

    3.29 My own global variables

    narrowed fringe background @@ -2727,11 +2735,11 @@ narrowed fringe background


    -
    -

    3.30 More scratch space

    +
    +

    3.30 More scratch space

    -
    -

    3.30.1 Text scratch

    +
    +

    3.30.1 Text scratch

    Sometimes I need a text mode scratch buffer while scratch is @@ -2747,8 +2755,8 @@ this never gets deleted, but cleaned instead.

    -
    -

    3.30.2 Autoscratch

    +
    +

    3.30.2 Autoscratch

    use autoscratch otherwise @@ -2780,8 +2788,8 @@ use autoscratch otherwise

    -
    -

    3.30.3 Persistent Scratch

    +
    +

    3.30.3 Persistent Scratch

    I also like to be scratch buffers persistent with @@ -2803,8 +2811,8 @@ I also like to be scratch buffers persistent with

    -
    -

    3.31 Recenter config

    +
    +

    3.31 Recenter config

    via abo abo @@ -2825,13 +2833,13 @@ I think this is a recenter calculation bug.

    -
    -

    4 Global Key Bindings

    +
    +

    4 Global Key Bindings


    -
    -

    4.1 c-h != delete

    +
    +

    4.1 c-h != delete

    (keyboard-translate ?\C-h ?\C-?)
    @@ -2842,8 +2850,8 @@ I think this is a recenter calculation bug.
     
    -
    -

    4.2 general keys (re-)mappings

    +
    +

    4.2 general keys (re-)mappings

    (global-set-key (kbd "C-s") 'isearch-forward-regexp) @@ -2873,8 +2881,8 @@ I think this is a recenter calculation bug.


    -
    -

    4.3 display a list of my own global key bindings and aliases

    +
    +

    4.3 display a list of my own global key bindings and aliases

    via emacswiki @@ -2951,13 +2959,13 @@ more help with: describe-function occur-mode

    -
    -

    5 Productivity Functions

    +
    +

    5 Productivity Functions


    -
    -

    5.1 goto line with tmp line numbers

    +
    +

    5.1 goto line with tmp line numbers

    I stole this somewhere, as far as I remember, emacswiki, however, I @@ -2981,8 +2989,8 @@ always had F7 for goto-line


    -
    -

    5.2 invert fore- and background

    +
    +

    5.2 invert fore- and background

    Sometimes when sitting in a very dark enviroment, my usual light @@ -3025,8 +3033,8 @@ fast


    -
    -

    5.3 Some useful bindings for Home and End keys Hit the key once to

    +
    +

    5.3 Some useful bindings for Home and End keys Hit the key once to

    Go to the beginning/end of a line, hit it twice in a row to go to @@ -3090,8 +3098,8 @@ This is the most natural use for those keys


    -
    -

    5.4 percent function

    +
    +

    5.4 percent function

    by Jens Heunemann: jump to percent position into current buffer @@ -3112,8 +3120,8 @@ by Jens Heunemann: jump to percent position into current buffer


    -
    -

    5.5 Simulate vi's % (percent) function

    +
    +

    5.5 Simulate vi's % (percent) function

    There's not a lot about vi[m] I like, but jumping with % to a @@ -3153,8 +3161,8 @@ only useful in programming modes


    -
    -

    5.6 Move region

    +
    +

    5.6 Move region

    Mark a region, then use M-up|down to move it around @@ -3253,8 +3261,8 @@ code from -

    5.7 comment-uncomment region with one key binding

    + -
    -

    5.8 search for symbol at point

    +
    +

    5.8 search for symbol at point

    Simulate the # function of vi, marks the symbol at point, C-s then @@ -3321,8 +3329,8 @@ via ergomacs


    -
    -

    5.9 Window Margin

    +
    +

    5.9 Window Margin

    Kinda screen reader for the poor. I use this sometimes with info @@ -3348,8 +3356,8 @@ left+right margin on demand (but nothing else)


    -
    -

    5.10 Fill and justify a paragraph

    +
    +

    5.10 Fill and justify a paragraph

    this is just a shortcut for: @@ -3378,8 +3386,8 @@ idea via: -

    5.11 Make a read-only copy of the current buffer

    +
    +

    5.11 Make a read-only copy of the current buffer

    I just create a new read-only buffer and copy the contents of the @@ -3428,8 +3436,8 @@ a file is not maintained via VC anyway.


    -
    -

    5.12 Cleanup, close all windows and kill all buffers

    +
    +

    5.12 Cleanup, close all windows and kill all buffers

    From time to time I get annoyed by the many dozen buffers @@ -3462,8 +3470,8 @@ setup accidentally.


    -
    -

    5.13 Cleanup current buffer

    +
    -
    -

    5.14 Remove Umlauts and other crab in current buffer

    +
    +

    5.14 Remove Umlauts and other crab in current buffer

    converts: @@ -3538,8 +3546,8 @@ used in dired buffers to cleanup filenames by german windows users.


    -
    -

    5.15 Better newline(s)

    +
    +

    5.15 Better newline(s)

    Add newline and jump to indent from wherever I am in the current @@ -3582,8 +3590,8 @@ disabled, interferes with modes.


    -
    -

    5.16 Mouse Rectangle

    +
    -
    -

    5.17 DOS <=> UNIX conversion helpers

    +
    +

    5.17 DOS <=> UNIX conversion helpers

    (defun dos2unix ()
    @@ -3631,8 +3639,8 @@ via stackoverflow
     
    -
    -

    5.18 helper do add the same thing to multiple mode hooks

    +
    +

    5.18 helper do add the same thing to multiple mode hooks

    via stackoverflow @@ -3650,8 +3658,8 @@ usage samples below.

    -
    -

    5.19 helper to catch load errors

    +
    +

    5.19 helper to catch load errors

    Try to eval 'fn, catch errors, if any but make it possible for @@ -3673,8 +3681,8 @@ emacs to continue undisturbed, used with SMEX, see below.


    -
    -

    5.20 Alignment Wrappers

    +
    +

    5.20 Alignment Wrappers

    align-regexp is already a very usefull tool, however, sometimes I @@ -3724,8 +3732,8 @@ wrappers to make this easier.

    -
    -

    5.21 String Helpers

    +
    +

    5.21 String Helpers

    Some helper functions I use here and there. @@ -3764,14 +3772,14 @@ Some helper functions I use here and there.

    -
    -

    6 Modes

    +
    +

    6 Modes

    -
    -

    6.1 Programming Languages

    +
    +

    6.1 Programming Languages

    -
    -

    6.1.1 VALA

    +
    +

    6.1.1 VALA

    (autoload 'vala-mode "vala-mode" "Major mode for editing Vala code." t)
    @@ -3786,8 +3794,8 @@ Some helper functions I use here and there.
     
    -
    -

    6.1.2 python mode

    +
    +

    6.1.2 python mode

    Not much configured for python, I'm happy with the defaults as it seems :) @@ -3815,8 +3823,8 @@ Not much configured for python, I'm happy with the defaults as it seems :)

    -
    -

    6.1.3 cperl mode

    +
    +

    6.1.3 cperl mode

    I am a perl addict. I love it, therefore, emacs must be prepared @@ -3963,8 +3971,8 @@ and hook them into cperl

    -
    -

    6.1.4 Paredit for lisp only

    +
    +

    6.1.4 Paredit for lisp only

    13.11.2018: disabled in exchange for smartparens, which see @@ -4005,8 +4013,8 @@ I use paredit in lisp a lot, and I'm mostly happy with the defaults.


    -
    -

    6.1.5 Smart Parens

    +
    +

    6.1.5 Smart Parens

    I'm trying to migrate to smart-parens, since it supports all of @@ -4226,8 +4234,8 @@ I use my own lisp comment tool until sp#942 is fixed


    -
    -

    6.1.6 ETAGS

    +
    +

    6.1.6 ETAGS

    I use ETAGS for some projects. With etags I can easily jump to the @@ -4304,11 +4312,11 @@ some handy aliases

    -
    -

    6.2 Text Modes

    +
    +

    6.2 Text Modes

    -
    -

    6.2.1 sgml

    +
    +

    6.2.1 sgml

    Used for XML and the likes. @@ -4335,8 +4343,8 @@ Used for XML and the likes.

    -
    -

    6.2.2 web-mode (JS, HTML, CSS combined)

    +
    +

    6.2.2 web-mode (JS, HTML, CSS combined)

    Web development is shit. Tech involved is a mess, and in most cases @@ -4430,8 +4438,8 @@ convert a text list into a html list.

    -
    -

    6.2.3 Cisco Mode

    +
    +

    6.2.3 Cisco Mode

    Written by myself many years ago, but I'm still using it daily to @@ -4449,8 +4457,8 @@ view and prepare cisco configs.

    -
    -

    6.2.4 Markdown

    +
    +

    6.2.4 Markdown

    I rarely use markdown, but sometimes I stumble upon such a file and @@ -4486,8 +4494,8 @@ parens and quotes constraints check on save

    -
    -

    6.2.5 POD mode

    +
    +

    6.2.5 POD mode

    I LOVE POD! POD is the documentation format of perl and there's a @@ -4621,8 +4629,8 @@ pod mode config


    -
    -

    6.2.6 conf-mode

    +
    +

    6.2.6 conf-mode

    conf-mode annoyingly overwrites the global keybinding C-c C-c with @@ -4643,10 +4651,10 @@ configs. Applies for derivates as well.

    -
    -

    6.2.7 Config::General mode

    +
    +

    6.2.7 Config::General mode

    -
    1. Config and doc
      +
      1. Config and doc

        config-general-mode (also on Melpa).

        @@ -4665,7 +4673,7 @@ both did not satisfy me. Now (as of 20170625) I solved this mess once and for al
    -
  • Convenicence Wrappers
    +
  • Convenicence Wrappers
    (defun config-general-completion-at-point ()
       "Complete word at point using hippie-expand, if not on a comment."
    @@ -4765,7 +4773,7 @@ Bugreport: http://d
     
  • -
  • Mode Hook
    +
  • Mode Hook

    I use TAB for completion AND tab and outshine. Also, the mode enables electric indent automatically, but I disabled it for @@ -4815,8 +4823,8 @@ for config-general-mode (which inherits from conf-mode).


  • -
    -

    6.2.8 Xmodmap Mode

    +
    +

    6.2.8 Xmodmap Mode

    the shortest mode ever, via emacswiki. @@ -4839,10 +4847,10 @@ the shortest mode ever, vi

    -
    -

    6.2.9 MMM Mode

    +
    +

    6.2.9 MMM Mode

    -
    1. MMM configure:
      +
      1. MMM configure:
        (add-to-list 'load-path (concat tvd-lisp-dir "/mmm-mode"))
         
        @@ -4861,7 +4869,7 @@ see doc for class definition in var 'mmm-classes-alist
         

      2. -
      3. MMM config for POD mode
        +
      4. MMM config for POD mode
        (mmm-add-classes
          '((html-pod
        @@ -4879,11 +4887,11 @@ see doc for class definition in var 'mmm-classes-alist
         
        -
        -

        6.3 Text Manupilation

        +
        +

        6.3 Text Manupilation

        -
        -

        6.3.1 expand-region

        +
        +

        6.3.1 expand-region

        One of the best modes I ever discovered. Press C-= multiple times @@ -4902,8 +4910,8 @@ related to ER:

        -
        -

        6.3.2 Mark, Copy, Yank Things

        +
        +

        6.3.2 Mark, Copy, Yank Things

        For a long time this stuff was located here in my emacs config. As @@ -5006,8 +5014,8 @@ it appears as NNN,NN.

        -
        -

        6.3.3 change-inner

        +
        +

        6.3.3 change-inner

        I use change-inner with a prefix key and some wrappers around @@ -5129,8 +5137,8 @@ typing the prefix key twice calls the real change-inner


        -
        -

        6.3.4 Rotate text

        +
        +

        6.3.4 Rotate text

        This one is great as well, I use it to toggle flags and such stuff @@ -5186,8 +5194,8 @@ short command anymore, so C-t would be free now, wouldn't it?

        -
        -

        6.3.5 Word wrapping

        +
        +

        6.3.5 Word wrapping

        same as word-wrap but without the fringe which I hate the most! @@ -5209,8 +5217,8 @@ overwritten by visual-line-mode above for specifics

        -
        -

        6.3.6 Viking Mode

        +
        +

        6.3.6 Viking Mode

        Delete stuff fast. Press the key multiple times - delete more @@ -5228,8 +5236,8 @@ things. Inspired by expand-region. Written by myself.

        -
        -

        6.3.7 HTMLize

        +
        +

        6.3.7 HTMLize

        extracted from debian package emacs-goodies-el-35.2+nmu1, since @@ -5246,8 +5254,8 @@ the current buffer, however it looks.

        -
        -

        6.3.8 iEdit (inline edit multiple searches)

        +
        +

        6.3.8 iEdit (inline edit multiple searches)

        Edit all occurences of something at once. Great for re-factoring. @@ -5288,11 +5296,11 @@ behavior, so, I modify it myself using defadvice.

        -
        -

        6.4 Interactives

        +
        +

        6.4 Interactives

        -
        -

        6.4.1 eShell stuff, or if interactive stuff is needed, use ansi-term

        +
        +

        6.4.1 eShell stuff, or if interactive stuff is needed, use ansi-term

        I am a hardcore bash user, but from time to time eshell is good @@ -5572,8 +5580,8 @@ no need for less or more, this is emacs, isn't it?

        -
        -

        6.4.2 Emacs LISP interactive

        +
        +

        6.4.2 Emacs LISP interactive

        General configuration for all things elisp. @@ -5809,8 +5817,8 @@ opens a new frame with all those buffers already opened and pinned.


        -
        -

        6.4.3 el2markdown

        +
        +

        6.4.3 el2markdown

        el2markdown is a module which @@ -5834,8 +5842,8 @@ README.md. Take care though: it doesn't convert the META section.

        -
        -

        6.4.4 tramp mode

        +
        +

        6.4.4 tramp mode

        Edit remote files, one of the best things in emacs. I use it every day heavily. @@ -5864,8 +5872,8 @@ see also backup section

        -
        -

        6.4.5 org mode

        +
        +

        6.4.5 org mode

        I use org mode to take notes mostly at work. I also track projects @@ -6137,6 +6145,9 @@ my own capture templates "* TODO %^{title}\n%u\n** Kostenstelle\n** Contact Peer\n** Contact Customer\n** Aufträge\n** Daten\n** Notizen\n %i%?\n" :prepend t :jump-to-captured t) + ("t" "Todo Item" entry (file+headline tvd-org-file "Heute") + "* TODO %^{title}\n:LOGBOOK:\n%u:END:\n" :prepend t :immediate-finish t) + ("j" "Journal" entry (file+headline tvd-org-file "Kurznotizen") "* TODO %^{title}\n%u\n %i%?\n" :prepend t :jump-to-captured t) @@ -6175,14 +6186,239 @@ always use the latest docs (expand-file-name "~/.emacs.d/lisp/org/doc")))

        -
        -
        -

        6.4.6 org table mode

        +
        +

        6.4.6 org agenda mode

        +I use org mode for along time now, primarily at work, but did not +use agenda. Instead I developed the habit of maintaining one org +entry which contains just a list with all things to do today. I +just edited this list manually and it worked. However, recently I +found out that agenda provides lots of features and commands +precisely for what I already did manually. So, now, finally (as of +november 2018) I switch to using the agenda. +

        + +

        +My agenda use is very simple though: I don't use any scheduling, no +priorities, no recurring events, no daily or other time based +views. I just keep a list of TODO entries and another of entries in +WAIT state, that's it. All those entries are located under a +special org entry with the title "Heute" and the category (as +property) WORK, which I use for filtering out agenda items. +

        + +

        +The general workflow is as follows: I execute (agenda) which starts +directly my custom agenda view. It lists open TODO items and +waiting WAIT items below. If I press `n', I will be asked for a +title and a new TODO item appears in my agenda. I can press `d' to +mark it as DONE, it will also be archived into a subsibling below +"HEUTE". I can press `w' to move an item into WAIT state and I can +press `a' to add text to the org entry under point (like "waiting +for customer email"). +

        + +

        +So, I don't use my regular org entries, which are in most cases +very large containing lots of information, as agenda items, but +only very short ones which act as reminders about what work I have +to do. However, since I have the org buffer always opened and +visible in a split buffer next to the agenda, it is no problem to +go to such a deep entry for editing or viewing. +

        + +
        +
        (require 'org-agenda)
        +
        +
        + +

        +This is my one and only agenda custom view, it displays TODO items +below entries categorized as WORK and WAIT items under the same +category. The cool thing here is, that the `tags' agenda view can +be used to filter for properties as well. In order to have this +working the following property drawer must exist in an entry with +TODO siblings: +

        + +
          +
        • +START Arbeit +

          +

          +:CATEGORY: WORK +

        • +
        +

        +* TODO a thing to do +* WAIT a thing waiting for something +

        + +
        +
        (setq org-agenda-custom-commands
        +      '(("o" "Daily TODO Tasks"
        +         ((tags "CATEGORY=\"WORK\""
        +                ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo '("CANCEL" "START" "DONE" "WAIT")))
        +                 (org-agenda-overriding-header "Tasks to do today:")
        +                 (org-agenda-follow-mode t)
        +                 (org-agenda-entry-text-mode t)))
        +          (tags "CATEGORY=\"WORK\""
        +                ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo '("CANCEL" "START" "DONE" "TODO")))
        +                 (org-agenda-overriding-header "\nTasks Waiting:"))))
        +         ((org-agenda-compact-blocks t)))))
        +
        +
        + +

        +A shortcut to reach my custom view directly +

        +
        +
        (defun agenda ()
        +  "Visit my org agenda directly."
        +  (interactive)
        +  (org-agenda nil "o"))
        +
        +
        + +

        +Add a line of text to the top of an existing TODO entry and refresh +the agenda +

        +
        +
        (defun tvd-org-agenda-edit-entry (note)
        +  "Insert a note as plain text into an entry"
        +  (interactive "sEnter note: ")
        +  (save-excursion
        +    (org-agenda-switch-to)
        +    (end-of-line)
        +    (newline)
        +    (insert note))
        +  (switch-to-buffer "*Org Agenda*")
        +  (org-agenda-redo t))
        +
        +
        + +

        +Mark an entry as DONE, archive it to an archive sibling and refresh +the agenda +

        +
        +
        (defun tvd-org-agenda-done()
        +  (interactive)
        +  (org-agenda-todo 'done)
        +  (org-agenda-archive-to-archive-sibling)
        +  (org-agenda-redo t))
        +
        +
        + +

        +Mark an entry as WAIT, archive it to an archive sibling and refresh +the agenda +

        +
        +
        (defun tvd-org-agenda-wait()
        +  (interactive)
        +  (org-agenda-todo "WAIT")
        +  (org-agenda-redo t))
        +
        +
        + +

        +A wrapper which executes an org capture directly. `t' is the +shortcut for the capture, defined above in org mode. +

        +
        +
        (defun tvd-org-agenda-capture (&optional vanilla)
        +  "Capture a task in agenda mode, using the date at point.
        +
        +If VANILLA is non-nil, run the standard `org-capture'."
        +  (interactive "P")
        +  (if vanilla
        +      (org-capture)
        +    (let ((org-overriding-default-time (org-get-cursor-date)))
        +      (org-capture nil "t")
        +      (org-agenda-redo t))))
        +
        +
        + +

        +Since I learned to love hydra, I have one for my agenda as well, of course: +

        +
        +
        (defhydra hydra-org-agenda (:color blue
        +                                   :pre (setq which-key-inhibit t)
        +                                   :post (setq which-key-inhibit nil)
        +                                   :hint none)
        +  "
        +Org Agenda (_q_uit)
        +
        +^Tasks^                             ^Options^             ^Movement^
        +-^^^^^^-------------------------------------------------------------------------------------
        +_n_: create new task                _f_: follow =?f?      ENTER:     switch to entry
        +_d_: mark task done and archive     _e_: entry  =?e?      C-<up>:    go one entry up
        +_w_: mark task waiting              ^^                    C-<down>:  go one entry down
        +_t_: toggle todo state              ^Marking^             M-<up>:    move entry up
        +_z_: archive task                   _m_: mark entry       M-<down>:  move entry down
        +_+_: increase prio                  _u_: un-mark entry
        +_-_: decrease prio                  _U_: un-mark all
        +_g_: refresh                        _B_: bulk action
        +_s_: save org buffer(s)
        +_a_: add a note to the entry
        +
        +"
        +  ("a" tvd-org-agenda-edit-entry nil)
        +  ("n" tvd-org-agenda-capture nil)
        +  ("g" org-agenda-redo nil)
        +  ("t" org-agenda-todo)
        +  ("d" tvd-org-agenda-done nil)
        +  ("w" tvd-org-agenda-wait nil)
        +  ("z" org-agenda-archive-to-archive-sibling nil)
        +  ("+" org-agenda-priority-up nil)
        +  ("-" org-agenda-priority-down nil)
        +  ("s" org-save-all-org-buffers nil)
        +  ("f" org-agenda-follow-mode
        +   (format "% -3S" org-agenda-follow-mode))
        +  ("e" org-agenda-entry-text-mode
        +   (format "% -3S" org-agenda-entry-text-mode))
        +  ("m" org-agenda-bulk-mark nil)
        +  ("u" org-agenda-bulk-unmark nil)
        +  ("U" org-agenda-bulk-remove-all-marks nil)
        +  ("B" org-agenda-bulk-action nil)
        +  ("q" nil nil :color red))
        +
        +
        + +

        +Configuration and key bindings for org agenda (same as in the hydra) +

        +
        +
        (add-hook 'org-agenda-mode-hook '(lambda () (progn
        +                                              (setq org-agenda-follow-mode t
        +                                                    org-log-into-drawer t
        +                                                    org-agenda-entry-text-mode t)
        +                                              (local-set-key (kbd "n") 'tvd-org-agenda-capture)
        +                                              (local-set-key (kbd "a") 'tvd-org-agenda-edit-entry)
        +                                              (local-set-key (kbd "d") 'tvd-org-agenda-done)
        +                                              (local-set-key (kbd "w") 'tvd-org-agenda-wait)
        +                                              (local-set-key (kbd "f") 'org-agenda-follow-mode)
        +                                              (local-set-key (kbd "e") 'org-agenda-entry-text-mode)
        +                                              (local-set-key (kbd "z") 'org-agenda-archive-to-archive-sibling)
        +                                              (local-set-key (kbd "C-<up>") 'org-agenda-previous-line)
        +                                              (local-set-key (kbd "C-<down>") 'org-agenda-next-line)
        +                                              (local-set-key (kbd "?") 'hydra-org-agenda/body))))
        +
        +
        +
        +
        +
        +
        +

        6.4.7 org table mode

        +
        +

        I'm so used to lovely org mode tables, I need them everywhere!

        @@ -6610,9 +6846,9 @@ allow me to insert org tables everywhere on request
        -
        -

        6.4.7 org mode slideshows

        -
        +
        +

        6.4.8 org mode slideshows

        +

        Making presentations within emacs with org mode is cool as well.

        @@ -6719,9 +6955,9 @@ Will be inserted as first help slide in a slide show
        -
        -

        6.4.8 outshine mode

        -
        +
        +

        6.4.9 outshine mode

        +

        I maintain my emacs config with outshine mode. It works a lot like org mode, but I still have a normal emacs lisp buffer, which I can @@ -6900,9 +7136,9 @@ posting online, which makes it way easier to read.

        -
        -

        6.4.9 outline mode

        -
        +
        +

        6.4.10 outline mode

        +

        I use the very same cycle style as in org mode: when on a heading, hide it, jump to next heading on the same level and expand that (or @@ -6999,9 +7235,9 @@ orange fringe when narrowed


        -
        -

        6.4.10 narrowing (no mode but fits here)

        -
        +
        +

        6.4.11 narrowing (no mode but fits here)

        +

        I use narrowing quite frequently, so here are some enhancements.

        @@ -7040,9 +7276,9 @@ via -

        6.4.11 ANSI-TERM (inferior shells/interpreters and REPLs)

        -
        +
        +

        6.4.12 ANSI-TERM (inferior shells/interpreters and REPLs)

        +

        I use ansi term for inferior shells only.

        @@ -7157,9 +7393,9 @@ finally the inferior REPLs:
        -
        -

        6.4.12 Puppet

        -
        +
        +

        6.4.13 Puppet

        +

        adds hook for .pp files

        @@ -7172,9 +7408,9 @@ adds hook for .pp files
        -
        -

        6.4.13 Novel Mode - Screen Reader

        -
        +
        +

        6.4.14 Novel Mode - Screen Reader

        +

        my own emacs screen reader, very handy to read docs on the road.

        @@ -7189,9 +7425,9 @@ my own emacs screen reader, very handy to read docs on the road.
        -
        -

        6.4.14 Macro Math

        -
        + -
        -

        6.4.15 Common-Lisp (SLIME)

        -
        +
        +

        6.4.16 Common-Lisp (SLIME)

        +

        I'm learing CL with slime, start with M-x slime.

        @@ -7247,9 +7483,9 @@ INSTALL: (see:
        -

        6.4.16 INFO Mode

        -
        +
        +

        6.4.17 INFO Mode

        +
        (require 'info)
         
        @@ -7379,9 +7615,9 @@ from examples, I love this one!, replaces the ? buffer
        -
        -

        6.4.17 calc et al.

        -
        +
        +

        6.4.18 calc et al.

        +

        emacs provides 4 ways to calculate:

        @@ -7430,9 +7666,9 @@ or, inferior perl calc: M-x icalc, see above
        -
        -

        6.4.18 MACROs

        -
        + -
        -

        6.4.19 EWW browser stuff

        -
        +
        +

        6.4.20 EWW browser stuff

        +

        Emacs has a builtin browser, which is not too bad.

        @@ -7713,9 +7949,9 @@ hides menus and distractions! Update emacs.
        -
        -

        6.4.20 Firestarter

        -
        + -
        -

        6.4.21 Tabulated List Mode

        -
        +
        +

        6.4.22 Tabulated List Mode

        +

        built-in, used by many interactive major modes

        @@ -7772,9 +8008,9 @@ we need to kill tablist's binding in order to have ours run (see below)
        -
        -

        6.4.22 Help Mode

        -
        +
        +

        6.4.23 Help Mode

        +

        I even customize help windows! … at least a little :)

        @@ -7803,9 +8039,9 @@ I even customize help windows! … at least a little :)
        -
        -

        6.4.23 Suggest Mode

        -
        +
        +

        6.4.24 Suggest Mode

        +

        suggest mode is a great elisp development tool. Execute `M-x suggest' and try it. @@ -7854,9 +8090,9 @@ I use my own clearing function, since suggest doesn't provide this

        -
        -

        6.4.24 Followcursor Mode

        -
        +
        +

        6.4.25 Followcursor Mode

        +

        source on github

        @@ -7884,9 +8120,9 @@ The mode is a work-in-progress… -
        -

        6.4.25 Magit

        -
        +
        +

        6.4.26 Magit

        +

        Not much to say about Magit

        @@ -7980,9 +8216,9 @@ Not much to say about Magit
        -
        -

        6.4.26 Dired

        -
        +
        +

        6.4.27 Dired

        +

        I use dired for two things: from inside magit as a convenient way to add or remove files from a repository. Or if I want to rename a @@ -7999,7 +8235,7 @@ tune this as well.

        -
        1. dired-k
          +
          1. dired-k

            dired-k is k for dired/emacs: it colorizes files and directory by age, that is, the older the greyer they get. And it displays flags @@ -8021,7 +8257,7 @@ load k if there's no git (e.g. on my notebook at work)

        2. -
        3. dired-hacks
          +
        4. dired-hacks

          Fuco1s dired-hacks is a place to find the really cool stuff, I mostly use the filters. @@ -8041,7 +8277,7 @@ place to find the really cool stuff, I mostly use the filters.

      5. -
      6. dired sort helpers
        +
      7. dired sort helpers

        This sort function by Xah Lee is easy to use and does what it should, great!, However, I added some -desc @@ -8071,7 +8307,7 @@ sister sorts for reverse sorting.

    -
  • dired git helpers
    +
  • dired git helpers

    via bin chen: make git commands available from dired buffer, which can be used in @@ -8128,7 +8364,7 @@ called with "hydras".

  • -
  • dired navigation
    +
  • dired navigation

    I'm used to jump around with pos1+end

    @@ -8148,7 +8384,7 @@ I'm used to jump around with pos1+end
  • -
  • dired buffer names
    +
  • dired buffer names

    This took me a long time to figure out, but I finally got it: I really hate it how dired names its buffers, it just uses the @@ -8176,7 +8412,7 @@ behavior as a bug, but I doubt many people would agree :)

  • -
  • dired config and key bindings
    +
  • dired config and key bindings

    and finally put everything together.

    @@ -8234,7 +8470,7 @@ and finally put everything together.
  • -
  • Dired Hydra
    +
  • Dired Hydra

    FIXME: not yet customized to fit my own config

    @@ -8298,9 +8534,9 @@ and finally put everything together.
  • -
    -

    6.4.27 Ediff Config

    -
    +
    +

    6.4.28 Ediff Config

    +

    Force ediff to use 1 frame (the current) and not open a new frame for control and help. Also changing the split orientation doesnt @@ -8347,9 +8583,9 @@ Usage: emacs -diff file1 file2


    -
    -

    6.4.28 Projectile

    -
    +
    +

    6.4.29 Projectile

    +
    (require 'projectile)
     (projectile-mode +1)
    @@ -8398,9 +8634,9 @@ Usage: emacs -diff file1 file2
     
    -
    -

    6.4.29 Occur

    -
    +
    +

    6.4.30 Occur

    +
    -
    -

    6.4.30 Window Hydra

    -
    +
    +

    6.4.31 Window Hydra

    +

    brightness wrappers

    @@ -8511,9 +8747,9 @@ brightness wrappers
    -
    -

    6.4.31 Eyebrowse Workspaces

    -
    +
    +

    6.4.32 Eyebrowse Workspaces

    +

    workspace configuration, like desktops. Seems to be a good implementation, w/o save though

    @@ -8604,11 +8840,11 @@ There's also some face config, see defcustom at end of file!
    -
    -

    6.5 Emacs Interface

    +
    +

    6.5 Emacs Interface

    -
    -

    6.5.1 Parens

    +
    +

    6.5.1 Parens

    display matching braces @@ -8629,8 +8865,8 @@ display matching braces

    -
    -

    6.5.2 highlight todo keywords (such as FIXME)

    +
    +

    6.5.2 highlight todo keywords (such as FIXME)

    Absolutely needed! @@ -8645,8 +8881,8 @@ Absolutely needed!


    -
    -

    6.5.3 UNDO Tree Mode

    +
    +

    6.5.3 UNDO Tree Mode

    Better undo, with redo support. @@ -8689,8 +8925,8 @@ M-_ catched by Xmonad


    -
    -

    6.5.4 Smarter M-x Mode (smex)

    +
    +

    6.5.4 Smarter M-x Mode (smex)

    This is really cool and I don't know how I could ever live without it. @@ -8713,8 +8949,8 @@ fails @win, so wrap it

    -
    -

    6.5.5 Smarter Search

    +
    +

    6.5.5 Smarter Search

    test, replace isearch-forward-regexp first only. @@ -8730,8 +8966,8 @@ dir: ivy/

    -
    -

    6.5.6 Which Func

    +
    +

    6.5.6 Which Func

    display current function - if any - in mode line @@ -8746,8 +8982,8 @@ display current function - if any - in mode line


    -
    -

    6.5.7 Show current-line in the Fringe

    +
    +

    6.5.7 Show current-line in the Fringe

    (require 'fringe-current-line)
    @@ -8766,8 +9002,8 @@ also change the color (matching the mode line
     
    -
    -

    6.5.8 Recent Files

    +
    +

    6.5.8 Recent Files

    You know the file you edited yesterday had "kri" in its name, but @@ -8860,8 +9096,8 @@ exclude some auto generated files

    -
    -

    6.5.9 IDO mode

    +
    +

    6.5.9 IDO mode

    There are other completion enhancement packages available like ivy @@ -9003,8 +9239,8 @@ by howardism: [re]open non-writable file with sudo

    -
    -

    6.5.10 Save cursor position

    +
    +

    6.5.10 Save cursor position

    So the next time I start emacs and open a file I were editing @@ -9025,8 +9261,8 @@ before.

    -
    -

    6.5.11 DoReMi experimentation

    +
    +

    6.5.11 DoReMi experimentation

    I'm not using it a lot, sometimes I tune the background color though. @@ -9055,8 +9291,8 @@ cool ones: doremi-buffers, doremi-all-faces-fg+ [s, h]


    -
    -

    6.5.12 Hightligt TABs

    +
    +

    6.5.12 Hightligt TABs

    not a mode, but however: higlight TABs in certain modes @@ -9079,8 +9315,8 @@ not a mode, but however: higlight TABs in certain modes

    -
    -

    6.5.13 Browse kill-ring

    +
    +

    6.5.13 Browse kill-ring

    when active use n and p to browse, <ret> to select, it's the same @@ -9098,8 +9334,8 @@ as <M-y> and I never really use it…

    -
    -

    6.5.14 goto-last-change

    +
    +

    6.5.14 goto-last-change

    Very handy, jump to last change[s]. @@ -9116,8 +9352,8 @@ Very handy, jump to last change[s].

    -
    -

    6.5.15 Bookmarks

    +
    +

    6.5.15 Bookmarks

    I use the builtin bookmark feature quite a lot and am happy with @@ -9149,8 +9385,8 @@ I use the same aliases as in apparix for bash (since I'm used to them)

    -
    -

    6.5.16 which-key

    +
    +

    6.5.16 which-key

    One of the best unobstrusive modes for key help ever. Just start @@ -9170,8 +9406,8 @@ press from there along with the associated functions.

    -
    -

    6.5.17 iBuffer mode

    +
    +

    6.5.17 iBuffer mode

    iBuffer is a great interactive buffer management tool included with @@ -9381,8 +9617,8 @@ override ibuffer M-o binding

    -
    -

    6.5.18 Printing

    +
    +

    6.5.18 Printing

    overwrites printing default menu, access via menu File => Print @@ -9427,8 +9663,8 @@ via -

    6.5.19 Beacon mode (pointer blink)

    +
    +

    6.5.19 Beacon mode (pointer blink)

    Source: beacon mode @@ -9458,8 +9694,8 @@ editing position.

    -
    -

    6.6 mode-line setup (must be the last mode)

    +
    +

    6.6 mode-line setup (must be the last mode)

    I just append the current version of my emacs config and leave out @@ -9527,13 +9763,13 @@ custom modeline

    -
    -

    7 Emacs Autoconfig / Customizegroup stuff

    +
    +

    7 Emacs Autoconfig / Customizegroup stuff


    -
    -

    7.1 font faces

    +
    +

    7.1 font faces

    Font color config, must always be the last thing so all hook faces are loaded. @@ -9605,8 +9841,8 @@ unless we're on windoze


    -
    -

    7.2 variables

    +
    +

    7.2 variables

    If I ever use custom-group to customize a mode, then I create a @@ -9627,8 +9863,8 @@ here. So, in normal times this should be empty, but needs to exist.

    -
    -

    7.3 done

    +
    +

    7.3 done

    Finally, this message is being displayed. If this isn't the case I @@ -9645,7 +9881,7 @@ know easily that something went wrong.

    Author: Tom

    -

    Created: 2018-11-18 So 12:40

    +

    Created: 2018-11-21 Mi 19:50

    Validate