From bcb6df128c00f460534103bb8613d6c67b79c2fe Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Wed, 24 Oct 2018 01:43:52 +0200 Subject: [PATCH] +fixes --- .emacs | 13 +- emacs.html | 1257 ++++++++++++++++++++++++++++------------------------ 2 files changed, 691 insertions(+), 579 deletions(-) diff --git a/.emacs b/.emacs index 528300c..58fb614 100644 --- a/.emacs +++ b/.emacs @@ -1,4 +1,4 @@ -;; Toms Emacs Config - portable - version (20181022.01) -*-emacs-lisp-*- +;; Toms Emacs Config - portable - version (20181023.01) -*-emacs-lisp-*- ;; * Introduction ;; This is my emacs config, it is more than twenty years old. It @@ -668,6 +668,11 @@ ;; 20181022.01 ;; - enhanced M-o for window switching a lot, using a hydra and the arrow keys +;; 20181023.01 +;; - moved which-key window to bottom, more room +;; - fixed window hydra docstring + + ;; ** TODO @@ -701,7 +706,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 "20181022.01") +(defvar tvd-emacs-version "20181023.01") ;; -------------------------------------------------------------------------------- @@ -5263,7 +5268,7 @@ _a_ || _d_ |---| _w_ --- _s_ =" ^Window Management^ ^^------------------------------------------------------------------------ _+_ Increase Font | _-_ Decrease Font Resize ^ ^ _w_ ^ ^ -_f_: Flip Windows ^^ Current ← ^ ^ _d_ +_f_: Flip Windows ^^ Current a ^ ^ _d_ _4_: Quarter Windows ^^ Window: ^ ^ _s_ ^ ^ _u_: Windows Undo _r_: Windows Redo ^^ _l_: Adjust Background brighter @@ -5632,7 +5637,7 @@ Reach this hydra with (require 'which-key) (which-key-mode) -(which-key-setup-side-window-right) +(which-key-setup-side-windowbottom) ;; -------------------------------------------------------------------------------- diff --git a/emacs.html b/emacs.html index c2a2149..4fb2f99 100644 --- a/emacs.html +++ b/emacs.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -232,211 +232,211 @@ for the JavaScript code in this tag.

Table of Contents

-Toms Emacs Config - portable - version (20181019.01) -*-emacs-lisp-*- +Toms Emacs Config - portable - version (20181023.01) -*-emacs-lisp-*-

-
-

1 Introduction

+
+

1 Introduction

This is my emacs config, it is more than twenty years old. It @@ -490,11 +490,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: @@ -1645,11 +1645,35 @@ C-y p: projectile

  • on help close restore windows setup
  • fixed hydra hints
  • + +

    +20181021.01 +

    +
      +
    • fixed window resizing
    • +
    + +

    +20181022.01 +

    +
      +
    • enhanced M-o for window switching a lot, using a hydra and the arrow keys
    • +
    + +

    +20181023.01 +

    +
      +
    • moved which-key window to bottom, more room
    • +
    • fixed window hydra docstring
    • +
    -
    -

    2.2 TODO

    + + +
    +

    2.2 TODO

    • check dired hydra
    • @@ -1672,16 +1696,16 @@ Old
    -
    -

    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") @@ -1694,8 +1718,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 @@ -1703,7 +1727,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 "20181019.01")
    +
    (defvar tvd-emacs-version "20181023.01")
     
    @@ -1712,11 +1736,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
    • @@ -1754,8 +1778,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 @@ -1774,8 +1798,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 @@ -1792,8 +1816,8 @@ look: emacswiki


    -
    -

    3.4 line-cursor in console

    +
    +

    3.4 line-cursor in console

    better visibility of cursor in console sessions @@ -1809,8 +1833,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 @@ -1881,8 +1905,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 @@ -1895,8 +1919,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. @@ -1912,8 +1936,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 "")
    @@ -1926,8 +1950,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. @@ -1940,8 +1964,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 @@ -1954,8 +1978,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 @@ -1969,8 +1993,8 @@ this can be seen in xmobar


    -
    -

    3.12 avoid invalid files

    +
    +

    3.12 avoid invalid files

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

    3.13 prepare load-path

    +
    +

    3.13 prepare load-path

    where to look for extensions: @@ -2009,10 +2033,23 @@ modules


    -
    -

    3.14 byte-compile all of them, if needed

    +
    +

    3.14 Hydra

    +Used here and there below, loaded as early as possible +

    +
    +
    (require 'hydra)
    +
    +
    +
    +
    + +
    +

    3.15 byte-compile all of them, if needed

    +
    +

    handy function to recompile all lisp files

    @@ -2025,9 +2062,9 @@ handy function to recompile all lisp files
    -
    -

    3.15 increase fontsize with ctrl-+ and ctrl--

    -
    +
    +

    3.16 increase fontsize with ctrl-+ and ctrl--

    +

    I use those bindings everywhere (firefox, terminal, etc), and in emacs as well. @@ -2052,12 +2089,12 @@ emacs as well.


    -
    -

    3.16 WINDOW management stuff

    -
    -
    -

    3.16.1 resize windows by keyboard

    -
    +
    +

    3.17 WINDOW management stuff

    +
    +
    +

    3.17.1 resize windows by keyboard

    +

    Very practical: resize windows easily.

    @@ -2073,9 +2110,9 @@ hit C-c C-r then use cursor keys to resize, <ret> to finish
    -
    -

    3.16.2 switch windows with MS-WINDOWS key

    -
    +
    +

    3.17.2 switch windows with MS-WINDOWS key

    +
    (require 'windmove)
     (windmove-default-keybindings 'super)
    @@ -2085,38 +2122,48 @@ hit C-c C-r then use cursor keys to resize, <ret> to finish
     
    -
    -

    3.16.3 M-o switch window or buffer

    -
    +
    +

    3.17.3 M-o switch window or buffer

    +

    -via mbork +The key M-o has different functions depending on context:

    -Most of the time I switch back and forth between two buffers, be -they in separate windows or not. With this function I can do -that. Of course this doesn't work if there are more than 2 windows, -and it only works with the 2 most recent visited buffers. +If there's only 1 window open, switch to the last active. +

    + +

    +If there are 2 windows open, switch back and forth between the +two. In order to flip them, Use M-O (that is: ALT+shift+o). +

    + +

    +And if there are more than 2 windows open, call the hydra, which +allows to switch to another window using the arrow keys. The hydra +stays for 1 second unles an arrow key has been pressed. So, I can +press multiple arrow keys in a row as long as I'm fast enough +between key presses. If I stop,the hydra disappears and I end up +whereever I was last. +

    + +

    +Also, within the hydra 'o' jumps to the last active window and +'f' flips all windows. +

    + +

    +from https://github.com/lukhas/buffer-move

    -
    (defun other-window-or-switch-buffer ()
    -  "Call `other-window' if more than one window is visible, switch
    -to next buffer otherwise."
    +
    (require 'buffer-move)
    +
    +(defun tvd-previous-window (&optional ignore)
    +  "Toggle between the last two selected windows."
       (interactive)
    -  (if (one-window-p)
    -      (switch-to-buffer nil)
    -    (other-window 1)))
    -
    -(global-set-key (kbd "M-o")             'other-window-or-switch-buffer)
    -
    -
    - -

    -M-o doesn't work when using emacs via Win->RDP->VNC->X11->Xmonad, -so fall back to C-o. -

    -
    -
    (global-set-key (kbd "C-o")             'other-window-or-switch-buffer)
    +  (let ((win (get-mru-window t t t)))
    +    (unless win (error "Last window not found."))
    +    (select-window win)))
     
    @@ -2126,7 +2173,7 @@ via exchange left with right buffer (or up and down), love it.

    -
    (defun flip-windows ()
    +
    (defun tvd-flip-windows ()
       "Rotate your windows"
       (interactive)
       (cond ((not (> (count-windows)1))
    @@ -2148,6 +2195,50 @@ exchange left with right buffer (or up and down), love it.
                  (set-window-start w1 s2)
                  (set-window-start w2 s1)
                  (setq i (1+ i)))))))
    +
    +(defhydra hydra-switch-windows (:color pink: :timeout 2.5)
    +  "
    +Switch to buffer: ← ↑ → ↓   | _o_: previous | _f_: flip | MOVE: _u_: up    _d_: down   _l_: left   _r_: right"
    +  ("<up>"    windmove-up    nil)
    +  ("<down>"  windmove-down  nil)
    +  ("<left>"  windmove-left  nil)
    +  ("<right>" windmove-right nil)
    +  ("o"       tvd-previous-window nil :color blue)
    +  ("f"       tvd-flip-windows    nil :color blue)
    +  ("u"       buf-move-up         nil :color blue)
    +  ("d"       buf-move-down       nil :color blue)
    +  ("l"       buf-move-left       nil :color blue)
    +  ("r"       buf-move-right      nil :color blue)
    +  ("q" nil nil :color red))
    +
    +
    + +

    +via mbork +modified to call the above hydra if there are more than 2 windows +

    +
    +
    (defun other-window-or-switch-buffer ()
    +  "Call `other-window' if more than one window is visible, switch
    +to next buffer otherwise."
    +  (interactive)
    +  (if (one-window-p)
    +      (switch-to-buffer nil)
    +    (progn
    +      (if (= (length (window-list)) 2)
    +          (other-window 1)
    +        (hydra-switch-windows/body)))))
    +
    +(global-set-key (kbd "M-o")             'other-window-or-switch-buffer)
    +
    +
    + +

    +M-o doesn't work when using emacs via Win->RDP->VNC->X11->Xmonad, +so fall back to C-o. +

    +
    +
    (global-set-key (kbd "C-o")             'other-window-or-switch-buffer)
     
    @@ -2157,16 +2248,16 @@ Use only in X11 emacs - setting M-O inside console causes <up> and

    (if (display-graphic-p)
    -(global-set-key (kbd "M-O")             'flip-windows))
    +    (global-set-key (kbd "M-O")             'tvd-flip-windows))
     

    -
    -

    3.16.4 Split window to 4 parts

    -
    +
    +

    3.17.4 Split window to 4 parts

    +
    (defun tvd-quarter-windows ()
       (interactive)
    @@ -2183,9 +2274,9 @@ Use only in  X11 emacs - setting M-O inside console  causes <up> and
     
    -
    -

    3.16.5 Remember and Restore Window Configurations - winner mode

    -
    +
    +

    3.17.5 Remember and Restore Window Configurations - winner mode

    +
    (winner-mode 1)
     
    @@ -2199,9 +2290,9 @@ keybindings: C-c right - winner-redo
    -
    -

    3.17 re-read a modified buffer

    -
    +
    +

    3.18 re-read a modified buffer

    +

    F5 == reload file if it has been modified by another process, shift because Xmonad @@ -2225,9 +2316,9 @@ because Xmonad


    -
    -

    3.18 global TAB/Indent config

    -
    +
    +

    3.19 global TAB/Indent config

    +

    I use spaces everywhere but Makefiles. If I encounter TABs I replace them with spaces, if I encounter users entering TABs into @@ -2266,9 +2357,9 @@ Use normal tabs in makefiles


    -
    -

    3.19 handy aliases

    -
    +
    +

    3.20 handy aliases

    +

    M-x q r <ret> is short enough for me, no need for key bindings for those @@ -2298,9 +2389,9 @@ those


    -
    -

    3.20 various settings

    -
    +
    +

    3.21 various settings

    +

    point stays while scrolling

    @@ -2352,9 +2443,9 @@ I'm grown up!
    -
    -

    3.21 load imenu

    -
    +
    +

    3.22 load imenu

    +
    (define-key global-map [C-down-mouse-2] 'imenu)
     
    @@ -2363,9 +2454,9 @@ I'm grown up!
    -
    -

    3.22 copy/paste Config

    -
    +
    +

    3.23 copy/paste Config

    +

    Related:

    @@ -2431,9 +2522,9 @@ marked region automatically copied, also on win
    -
    -

    3.23 use more mem

    -
    +
    +

    3.24 use more mem

    +

    are you from the past?

    @@ -2445,9 +2536,9 @@ are you from the past?
    -
    -

    3.24 better file name completion

    -
    +
    +

    3.25 better file name completion

    +

    Complete filenames case insensitive and ignore certain files during completion.

    @@ -2476,9 +2567,9 @@ via -

    3.25 abbreviations

    -
    +
    +

    3.26 abbreviations

    +

    Do I really need those anymore? Added ca 1999…

    @@ -2507,9 +2598,9 @@ do NOT ask to save abbrevs on exit
    -
    -

    3.26 meaningful names for buffers with the same name

    -
    + -
    -

    3.27 packages

    -
    +
    +

    3.28 packages

    +

    I dont need it all the time and only for experimentation, so lets only use melpa on demand @@ -2550,9 +2641,9 @@ only use melpa on demand


    -
    -

    3.28 My own global variables

    -
    +
    +

    3.29 My own global variables

    +

    narrowed fringe background

    @@ -2564,12 +2655,12 @@ narrowed fringe background
    -
    -

    3.29 More scratch space

    -
    -
    -

    3.29.1 Text scratch

    -
    +
    +

    3.30 More scratch space

    +
    +
    +

    3.30.1 Text scratch

    +

    Sometimes I need a text mode scratch buffer while scratch is already in use. So let's prepare one. I also add a buffer hook so that @@ -2584,9 +2675,9 @@ this never gets deleted, but cleaned instead.

    -
    -

    3.29.2 Autoscratch

    -
    +
    +

    3.30.2 Autoscratch

    +

    use autoscratch otherwise autoscratch github @@ -2616,9 +2707,9 @@ use autoscratch otherwise

    -
    -

    3.29.3 Persistent Scratch

    -
    +
    +

    3.30.3 Persistent Scratch

    +

    I also like to be scratch buffers persistent with persistent-scratch @@ -2639,9 +2730,9 @@ I also like to be scratch buffers persistent with

    -
    -

    3.30 Recenter config

    -
    +
    +

    3.31 Recenter config

    +

    via abo abo

    @@ -2661,13 +2752,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-?)
    @@ -2678,8 +2769,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) @@ -2709,8 +2800,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 @@ -2787,13 +2878,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 @@ -2817,8 +2908,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 @@ -2861,8 +2952,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 @@ -2926,8 +3017,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 @@ -2948,8 +3039,8 @@ by Jens Heunemann: jump to percent position into current buffer


    -
    -

    5.5 Simulate vi's % function

    +
    +

    5.5 Simulate vi's % function

    There's not a lot about vi[m] I like, but jumping with % to a @@ -2981,8 +3072,8 @@ just insert a literal ?%. Only make sense if bound to %.


    -
    -

    5.6 Move region

    +
    +

    5.6 Move region

    Mark a region, then use M-up|down to move it around @@ -3081,8 +3172,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 @@ -3149,8 +3240,8 @@ via ergomacs


    -
    -

    5.9 Window Margin

    +
    +

    5.9 Window Margin

    Kinda screen reader for the poor. I use this sometimes with info @@ -3176,8 +3267,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: @@ -3206,8 +3297,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 @@ -3256,8 +3347,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 @@ -3290,8 +3381,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: @@ -3366,8 +3457,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 @@ -3410,8 +3501,8 @@ disabled, interferes with modes.


    -
    -

    5.16 Mouse Rectangle

    +
    -
    -

    5.17 DOS <=> UNIX conversion helpers

    +
    +

    5.17 DOS <=> UNIX conversion helpers

    (defun dos2unix ()
    @@ -3459,8 +3550,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 @@ -3478,8 +3569,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 @@ -3501,8 +3592,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 @@ -3552,8 +3643,8 @@ wrappers to make this easier.

    -
    -

    5.21 String Helpers

    +
    +

    5.21 String Helpers

    Some helper functions I use here and there. @@ -3592,14 +3683,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)
    @@ -3614,8 +3705,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 :) @@ -3643,8 +3734,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 @@ -3791,8 +3882,8 @@ and hook them into cperl

    -
    -

    6.1.4 Paredit for lisp only

    +
    +

    6.1.4 Paredit for lisp only

    I use paredit in lisp a lot, but are mostly happy with the defaults. @@ -3835,8 +3926,8 @@ sometimes I need to be able to turn it off fast:

    -
    -

    6.1.5 ETAGS

    +
    +

    6.1.5 ETAGS

    I use ETAGS for some projects. With etags I can easily jump to the @@ -3913,11 +4004,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. @@ -3944,8 +4035,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 @@ -4039,8 +4130,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 @@ -4058,8 +4149,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 @@ -4095,8 +4186,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 @@ -4230,8 +4321,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 @@ -4252,10 +4343,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).

        @@ -4274,7 +4365,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."
    @@ -4374,7 +4465,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 @@ -4423,8 +4514,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. @@ -4447,10 +4538,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"))
         
        @@ -4469,7 +4560,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
        @@ -4487,11 +4578,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 @@ -4510,8 +4601,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 @@ -4614,8 +4705,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 @@ -4737,8 +4828,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 @@ -4794,8 +4885,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! @@ -4817,8 +4908,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 @@ -4836,8 +4927,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 @@ -4854,8 +4945,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. @@ -4896,25 +4987,13 @@ behavior, so, I modify it myself using defadvice.

        -
        -

        6.4 Interactives

        +
        +

        6.4 Interactives

        -
        -

        6.4.1 Hydra

        +
        +

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

        -Used here and there below -

        -
        -
        (require 'hydra)
        -
        -
        -
        -
        -
        -

        6.4.2 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 enough. It's great when used remote when only sftp is supported.

        @@ -5192,9 +5271,9 @@ no need for less or more, this is emacs, isn't it?
        -
        -

        6.4.3 Emacs LISP interactive

        -
        +
        +

        6.4.2 Emacs LISP interactive

        +

        General configuration for all things elisp.

        @@ -5404,9 +5483,9 @@ opens a new frame with all those buffers already opened and pinned.
        -
        -

        6.4.4 el2markdown

        -
        +
        +

        6.4.3 el2markdown

        +

        el2markdown is a module which can be used to convert Commentary sections into markdown files. I use this to @@ -5429,9 +5508,9 @@ README.md. Take care though: it doesn't convert the META section.

        -
        -

        6.4.5 tramp mode

        -
        +
        +

        6.4.4 tramp mode

        +

        Edit remote files, one of the best things in emacs. I use it every day heavily.

        @@ -5458,9 +5537,9 @@ see also backup section
        -
        -

        6.4.6 org mode

        -
        +
        +

        6.4.5 org mode

        +

        I use org mode to take notes mostly at work. I also track projects and TODO lists etc. I do not, however, use agenda or any @@ -5773,9 +5852,9 @@ always use the latest docs


        -
        -

        6.4.7 org table mode

        -
        +
        +

        6.4.6 org table mode

        +

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

        @@ -6204,9 +6283,9 @@ allow me to insert org tables everywhere on request
        -
        -

        6.4.8 org mode slideshows

        -
        +
        +

        6.4.7 org mode slideshows

        +

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

        @@ -6313,9 +6392,9 @@ Will be inserted as first help slide in a slide show
        -
        -

        6.4.9 outshine mode

        -
        +
        +

        6.4.8 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 @@ -6494,9 +6573,9 @@ posting online, which makes it way easier to read.

        -
        -

        6.4.10 outline mode

        -
        +
        +

        6.4.9 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 @@ -6592,9 +6671,9 @@ orange fringe when narrowed


        -
        -

        6.4.11 narrowing (no mode but fits here)

        -
        +
        +

        6.4.10 narrowing (no mode but fits here)

        +

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

        @@ -6633,9 +6712,9 @@ via -

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

        -
        +
        +

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

        +

        I use ansi term for inferior shells only.

        @@ -6750,9 +6829,9 @@ finally the inferior REPLs:
        -
        -

        6.4.13 Puppet

        -
        +
        +

        6.4.12 Puppet

        +

        adds hook for .pp files

        @@ -6765,9 +6844,9 @@ adds hook for .pp files
        -
        -

        6.4.14 Novel Mode - Screen Reader

        -
        +
        +

        6.4.13 Novel Mode - Screen Reader

        +

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

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

        6.4.15 Macro Math

        -
        + -
        -

        6.4.16 Common-Lisp (SLIME)

        -
        +
        +

        6.4.15 Common-Lisp (SLIME)

        +

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

        @@ -6840,9 +6919,9 @@ INSTALL: (see:
        -

        6.4.17 INFO Mode

        -
        +
        +

        6.4.16 INFO Mode

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

        6.4.18 calc et al.

        -
        +
        +

        6.4.17 calc et al.

        +

        emacs provides 4 ways to calculate:

        @@ -7023,9 +7102,9 @@ or, inferior perl calc: M-x icalc, see above
        -
        -

        6.4.19 MACROs

        -
        + -
        -

        6.4.20 EWW browser stuff

        -
        +
        +

        6.4.19 EWW browser stuff

        +

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

        @@ -7306,9 +7385,9 @@ hides menus and distractions! Update emacs.
        -
        -

        6.4.21 Firestarter

        -
        + -
        -

        6.4.22 Tabulated List Mode

        -
        +
        +

        6.4.21 Tabulated List Mode

        +

        built-in, used by many interactive major modes

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

        6.4.23 Help Mode

        -
        +
        +

        6.4.22 Help Mode

        +

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

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

        6.4.24 Suggest Mode

        -
        +
        +

        6.4.23 Suggest Mode

        +

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

        -
        -

        6.4.25 Followcursor Mode

        -
        +
        +

        6.4.24 Followcursor Mode

        +

        source on github

        @@ -7475,9 +7554,9 @@ The mode is a work-in-progress… -
        -

        6.4.26 Magit

        -
        +
        +

        6.4.25 Magit

        +

        Not much to say about Magit

        @@ -7554,9 +7633,9 @@ Not much to say about Magit
        -
        -

        6.4.27 Dired

        -
        +
        +

        6.4.26 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 @@ -7573,7 +7652,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 @@ -7595,7 +7674,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. @@ -7615,7 +7694,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 @@ -7645,7 +7724,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 @@ -7702,7 +7781,7 @@ called with "hydras".

  • -
  • dired navigation
    +
  • dired navigation

    I'm used to jump around with pos1+end

    @@ -7722,7 +7801,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 @@ -7750,7 +7829,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.

    @@ -7805,7 +7884,7 @@ and finally put everything together.
  • -
  • Dired Hydra
    +
  • Dired Hydra

    FIXME: not yet customized to fit my own config

    @@ -7869,9 +7948,9 @@ and finally put everything together.
  • -
    -

    6.4.28 Ediff Config

    -
    +
    +

    6.4.27 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 @@ -7918,9 +7997,9 @@ Usage: emacs -diff file1 file2


    -
    -

    6.4.29 Projectile

    -
    +
    +

    6.4.28 Projectile

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

    6.4.30 Occur

    -
    +
    +

    6.4.29 Occur

    +
    -
    -

    6.4.31 Window Hydra

    -
    +
    +

    6.4.30 Window Hydra

    +

    brightness wrappers

    @@ -8009,13 +8088,41 @@ brightness wrappers (interactive) (doremi-increment-background-color-1 ?v 1)) +(defun tvd-pre-resize () + "Called as pre execute hook py hydra-windows-resize/body and +executes the called key once, so that no key press gets lost from +hydra-windows (a,s,d,w)" + (interactive) + (let + ((key (car (reverse (append (recent-keys) nil))))) + (cond + ((eq key ?a) + (shrink-window-horizontally 1)) + ((eq key ?d) + (enlarge-window-horizontally 1)) + ((eq key ?w) + (shrink-window 1)) + ((eq key ?s) + (enlarge-window 1))))) + +(defhydra hydra-windows-resize (:color pink :pre (tvd-pre-resize)) + ;; small sub hydra for window resizing, it leaves as much room for + ;; windows as possible + " +_a_ || _d_ |---| _w_ --- _s_ =" + ("a" shrink-window-horizontally nil) + ("d" enlarge-window-horizontally nil) + ("w" shrink-window nil) + ("s" enlarge-window nil) + ("q" nil nil :color red)) + (defhydra hydra-windows (:color blue) " ^Window Management^ ^^------------------------------------------------------------------------ _+_ Increase Font | _-_ Decrease Font Resize ^ ^ _w_ ^ ^ -_f_: Flip Windows <M-O> ^^ Current _a_ ^ ^ _d_ +_f_: Flip Windows <M-O> ^^ Current a ^ ^ _d_ _4_: Quarter Windows <C-x 4> ^^ Window: ^ ^ _s_ ^ ^ _u_: Windows Undo <C-c left> _r_: Windows Redo <C-c right> ^^ _l_: Adjust Background brighter @@ -8038,10 +8145,10 @@ brightness wrappers ("i" tvd-invert nil) ("b" tvd-bg-darker nil :color pink) ("l" tvd-bg-brighter nil :color pink) - ("a" shrink-window-horizontally nil :color pink) - ("d" enlarge-window-horizontally nil :color pink) - ("w" shrink-window nil :color pink) - ("s" enlarge-window nil :color pink) + ("a" hydra-windows-resize/body nil) + ("d" hydra-windows-resize/body nil) + ("w" hydra-windows-resize/body nil) + ("s" hydra-windows-resize/body nil) ("h" hl-line-mode nil) ("n" linum-mode nil) ("q" nil nil :color red)) @@ -8054,11 +8161,11 @@ brightness wrappers
    -
    -

    6.5 Emacs Interface

    +
    +

    6.5 Emacs Interface

    -
    -

    6.5.1 Parens

    +
    +

    6.5.1 Parens

    display matching braces @@ -8079,8 +8186,8 @@ display matching braces

    -
    -

    6.5.2 highlight todo keywords (such as FIXME)

    +
    +

    6.5.2 highlight todo keywords (such as FIXME)

    Absolutely needed! @@ -8095,8 +8202,8 @@ Absolutely needed!


    -
    -

    6.5.3 UNDO Tree Mode

    +
    +

    6.5.3 UNDO Tree Mode

    Better undo, with redo support. @@ -8139,8 +8246,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. @@ -8163,8 +8270,8 @@ fails @win, so wrap it

    -
    -

    6.5.5 Smarter Search

    +
    +

    6.5.5 Smarter Search

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

    -
    -

    6.5.6 Which Func

    +
    +

    6.5.6 Which Func

    display current function - if any - in mode line @@ -8196,8 +8303,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)
    @@ -8216,8 +8323,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 @@ -8311,8 +8418,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 @@ -8454,8 +8561,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 @@ -8476,8 +8583,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. @@ -8506,8 +8613,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 @@ -8530,8 +8637,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 @@ -8549,8 +8656,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]. @@ -8567,8 +8674,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 @@ -8600,8 +8707,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 @@ -8613,7 +8720,7 @@ press from there along with the associated functions.

    (require 'which-key)
     (which-key-mode)
    -(which-key-setup-side-window-right)
    +(which-key-setup-side-windowbottom)
     
    @@ -8621,8 +8728,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 @@ -8832,8 +8939,8 @@ override ibuffer M-o binding

    -
    -

    6.5.18 Printing

    +
    +

    6.5.18 Printing

    overwrites printing default menu, access via menu File => Print @@ -8878,8 +8985,8 @@ via -

    6.5.19 Beacon mode (pointer blink)

    +
    +

    6.5.19 Beacon mode (pointer blink)

    Source: beacon mode @@ -8909,8 +9016,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 @@ -8975,13 +9082,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. @@ -9061,8 +9168,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 @@ -9083,8 +9190,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 @@ -9101,7 +9208,7 @@ know easily that something went wrong.

    Author: Tom

    -

    Created: 2018-10-20 Sa 12:28

    +

    Created: 2018-10-24 Mi 01:43

    Validate