diff --git a/.emacs b/.emacs index 34872a4..843d108 100644 --- a/.emacs +++ b/.emacs @@ -1,4 +1,4 @@ -;; Toms Emacs Config - portable - version (20181110.01) -*-emacs-lisp-*- +;; Toms Emacs Config - portable - version (20181111.01) -*-emacs-lisp-*- ;; * Introduction ;; This is my emacs config, it is more than twenty years old. It @@ -694,6 +694,11 @@ ;; - fixed % function, really ;; - fixed elisp autoscratch config +;; 20181111.01 +;; - fixed autoscratch elisp trigger + + +;; - started with smartparens, first config just replaces paredit ;; ** TODO @@ -722,7 +727,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 "20181110.01") +(defvar tvd-emacs-version "20181111.01") ;; -------------------------------------------------------------------------------- @@ -1258,12 +1263,11 @@ to next buffer otherwise." (add-hook 'autoscratch-mode-hook '(lambda () (setq autoscratch-triggers-alist '(("[(;]" . (progn - (emacs-lisp-mode) - (electric-indent-local-mode t) - (paredit-mode t) - (electric-pair-mode t))) + (call-interactively 'emacs-lisp-mode) + (call-interactively 'enable-paredit-mode) + (call-interactively 'electric-pair-mode))) ("#" . (progn - (config-general-mode) + (call-interactively 'config-general-mode) (electric-indent-local-mode t))) ("[-a-zA-Z0-9]" . (text-mode)) ("/" . (c-mode)) @@ -2139,7 +2143,7 @@ col1, col2" ;; *** Paredit for lisp only -;; I use paredit in lisp a lot, but are mostly happy with the defaults. +;; I use paredit in lisp a lot, and I'm mostly happy with the defaults. (autoload 'enable-paredit-mode "paredit" "Turn on pseudo-structural editing of Lisp code." t) @@ -2162,7 +2166,30 @@ col1, col2" (define-key paredit-mode-map (kbd "") nil) (define-key paredit-mode-map (kbd "") nil))) ;; -------------------------------------------------------------------------------- +;; *** Smart Parens +;; I'm trying to migrate to smart-parens, since it supports all of +;; paredit but can do more +;; Also look at: +;; https://github.com/Fuco1/.emacs.d/blob/master/files/smartparens.el +;; https://github.com/Fuco1/smartparens/wiki +;; https://ebzzry.io/en/emacs-pairs/ +(require 'smartparens-config) + +(eval-after-load 'smartparens + '(progn + (add-hook 'smartparens-enabled-hook #'disable-paredit-mode) + (define-key smartparens-mode-map (kbd "C-k") 'sp-kill-sexp) + (define-key smartparens-mode-map (kbd "C-") 'sp-forward-slurp-sexp) + (define-key smartparens-mode-map (kbd "C-") 'sp-forward-barf-sexp) + (define-key smartparens-mode-map (kbd "C-M-") 'sp-forward-sexp) + (define-key smartparens-mode-map (kbd "C-M-") 'sp-backward-sexp) + (define-key smartparens-mode-map (kbd "C-S-") 'sp-next-sexp) + (define-key smartparens-mode-map (kbd "C-S-") 'sp-previous-sexp) + ) + ) + +;; -------------------------------------------------------------------------------- ;; *** ETAGS ;; I use ETAGS for some projects. With etags I can easily jump to the diff --git a/emacs.html b/emacs.html index 326fb0d..7ae8cdf 100644 --- a/emacs.html +++ b/emacs.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -232,211 +232,213 @@ for the JavaScript code in this tag.

Table of Contents

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

-
-

1 Introduction

+
+

1 Introduction

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

-20181023.01 +20181029.01

    -
  • moved which-key window to bottom, more room
  • -
  • fixed window hydra docstring
  • -
- - -
    -
  • added kab to window hydra
  • -
  • added timestamps in magit log buffer
  • -
-
-
- -
-

2.2 TODO

-
-
    -
  • check dired hydra
  • -
  • complete org table hydra
  • +
  • fixed recentf max files

-Old +20181030.01

    +
  • fixed windows hydra flip window call
  • +
+ +

+20181105.01 +

+
    +
  • added eyebrowse with config and hydra, prefix: C-x C-x
  • +
+ +

+20181106.01 +

+
    +
  • close help windows regularly again
  • +
+ +

+20181107.01 +

+
    +
  • removed debug toggle
  • +
  • added magit status window new "q" feature which kills +all magit buffers and restores window setup
  • +
  • added magit status margin timestamps
  • +
+ +

+20181107.01 +

+
    +
  • fixed function, inserts at ()
  • +
  • added / to dired hydra
  • +
+ +

+20181110.01 +

+
    +
  • fixed % function, really
  • +
  • fixed elisp autoscratch config
  • +
+ +

+20181111.01 +

+
    +
  • fixed autoscratch elisp trigger
  • +
+ + +
    +
  • started with smartparens, first config just replaces paredit
  • +
+
+
+ +
+

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") @@ -1722,8 +1767,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 @@ -1731,7 +1776,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 "20181023.01")
+
(defvar tvd-emacs-version "20181111.01")
 
@@ -1740,11 +1785,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
  • @@ -1782,8 +1827,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 @@ -1802,8 +1847,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 @@ -1820,8 +1865,8 @@ look: emacswiki


-
-

3.4 line-cursor in console

+
+

3.4 line-cursor in console

better visibility of cursor in console sessions @@ -1837,8 +1882,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 @@ -1909,8 +1954,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 @@ -1923,8 +1968,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. @@ -1940,8 +1985,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 "")
@@ -1954,8 +1999,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. @@ -1968,8 +2013,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 @@ -1982,8 +2027,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 @@ -1997,8 +2042,8 @@ this can be seen in xmobar


-
-

3.12 avoid invalid files

+
+

3.12 avoid invalid files

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

3.13 prepare load-path

+
+

3.13 prepare load-path

where to look for extensions: @@ -2037,8 +2082,8 @@ modules


-
-

3.14 Hydra

+
+

3.14 Hydra

Used here and there below, loaded as early as possible @@ -2050,8 +2095,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 @@ -2066,8 +2111,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 @@ -2093,11 +2138,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. @@ -2114,8 +2159,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)
@@ -2126,8 +2171,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: @@ -2259,8 +2304,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 ()
@@ -2278,8 +2323,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)
@@ -2294,8 +2339,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 @@ -2320,8 +2365,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 @@ -2361,8 +2406,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 @@ -2393,8 +2438,8 @@ those


-
-

3.21 various settings

+
+

3.21 various settings

point stays while scrolling @@ -2447,8 +2492,8 @@ I'm grown up!


-
-

3.22 load imenu

+
+

3.22 load imenu

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

3.23 copy/paste Config

+
+

3.23 copy/paste Config

Related: @@ -2526,8 +2571,8 @@ marked region automatically copied, also on win


-
-

3.24 use more mem

+
+

3.24 use more mem

are you from the past? @@ -2540,8 +2585,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. @@ -2571,8 +2616,8 @@ via -

3.26 abbreviations

+
+

3.26 abbreviations

Do I really need those anymore? Added ca 1999… @@ -2602,8 +2647,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 @@ -2645,8 +2690,8 @@ only use melpa on demand


-
-

3.29 My own global variables

+
+

3.29 My own global variables

narrowed fringe background @@ -2659,11 +2704,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 @@ -2679,8 +2724,8 @@ this never gets deleted, but cleaned instead.

-
-

3.30.2 Autoscratch

+
+

3.30.2 Autoscratch

use autoscratch otherwise @@ -2692,10 +2737,11 @@ use autoscratch otherwise (add-hook 'autoscratch-mode-hook '(lambda () (setq autoscratch-triggers-alist '(("[(;]" . (progn - (emacs-lisp-mode) - (electric-indent-local-mode t))) + (call-interactively 'emacs-lisp-mode) + (call-interactively 'enable-paredit-mode) + (call-interactively 'electric-pair-mode))) ("#" . (progn - (config-general-mode) + (call-interactively 'config-general-mode) (electric-indent-local-mode t))) ("[-a-zA-Z0-9]" . (text-mode)) ("/" . (c-mode)) @@ -2711,8 +2757,8 @@ use autoscratch otherwise

-
-

3.30.3 Persistent Scratch

+
+

3.30.3 Persistent Scratch

I also like to be scratch buffers persistent with @@ -2734,8 +2780,8 @@ I also like to be scratch buffers persistent with

-
-

3.31 Recenter config

+
+

3.31 Recenter config

via abo abo @@ -2756,13 +2802,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-?)
@@ -2773,8 +2819,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) @@ -2804,8 +2850,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 @@ -2882,13 +2928,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 @@ -2912,8 +2958,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 @@ -2956,8 +3002,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 @@ -3021,8 +3067,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 @@ -3043,8 +3089,8 @@ by Jens Heunemann: jump to percent position into current buffer


- -
-

5.6 Move region

+
+

5.6 Move region

Mark a region, then use M-up|down to move it around @@ -3176,8 +3230,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 @@ -3244,8 +3298,8 @@ via ergomacs


-
-

5.9 Window Margin

+
+

5.9 Window Margin

Kinda screen reader for the poor. I use this sometimes with info @@ -3271,8 +3325,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: @@ -3301,8 +3355,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 @@ -3351,8 +3405,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 @@ -3385,8 +3439,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: @@ -3461,8 +3515,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 @@ -3505,8 +3559,8 @@ disabled, interferes with modes.


-
-

5.16 Mouse Rectangle

+
-
-

5.17 DOS <=> UNIX conversion helpers

+
+

5.17 DOS <=> UNIX conversion helpers

(defun dos2unix ()
@@ -3554,8 +3608,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 @@ -3573,8 +3627,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 @@ -3596,8 +3650,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 @@ -3647,8 +3701,8 @@ wrappers to make this easier.

-
-

5.21 String Helpers

+
+

5.21 String Helpers

Some helper functions I use here and there. @@ -3687,14 +3741,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)
@@ -3709,8 +3763,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 :) @@ -3738,8 +3792,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 @@ -3886,11 +3940,11 @@ 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. +I use paredit in lisp a lot, and I'm mostly happy with the defaults.

@@ -3929,11 +3983,45 @@ sometimes I need to be able to turn it off fast:
- -
-

6.1.5 ETAGS

+
+

6.1.5 Smart Parens

+I'm trying to migrate to smart-parens, since it supports all of +paredit but can do more +

+ +

+Also look at: +https://github.com/Fuco1/.emacs.d/blob/master/files/smartparens.el +https://github.com/Fuco1/smartparens/wiki +https://ebzzry.io/en/emacs-pairs/ +

+
+
(require 'smartparens-config)
+
+(eval-after-load 'smartparens
+  '(progn
+     (add-hook 'smartparens-enabled-hook #'disable-paredit-mode)
+     (define-key smartparens-mode-map (kbd "C-k")         'sp-kill-sexp)
+     (define-key smartparens-mode-map (kbd "C-<left>")    'sp-forward-slurp-sexp)
+     (define-key smartparens-mode-map (kbd "C-<right>")   'sp-forward-barf-sexp)
+     (define-key smartparens-mode-map (kbd "C-M-<right>") 'sp-forward-sexp)
+     (define-key smartparens-mode-map (kbd "C-M-<left>")  'sp-backward-sexp)
+     (define-key smartparens-mode-map (kbd "C-S-<right>") 'sp-next-sexp)
+     (define-key smartparens-mode-map (kbd "C-S-<left>")  'sp-previous-sexp)
+     )
+  )
+
+
+ +
+
+
+
+

6.1.6 ETAGS

+
+

I use ETAGS for some projects. With etags I can easily jump to the definition of a function, struct or whatever across files and directories. @@ -4008,11 +4096,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. @@ -4039,8 +4127,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 @@ -4134,8 +4222,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 @@ -4153,8 +4241,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 @@ -4190,8 +4278,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 @@ -4325,8 +4413,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 @@ -4347,10 +4435,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).

      @@ -4369,7 +4457,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."
    @@ -4469,7 +4557,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 @@ -4518,8 +4606,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. @@ -4542,10 +4630,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"))
         
        @@ -4564,7 +4652,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
        @@ -4582,11 +4670,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 @@ -4605,8 +4693,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 @@ -4709,8 +4797,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 @@ -4832,8 +4920,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 @@ -4889,8 +4977,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! @@ -4912,8 +5000,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 @@ -4931,8 +5019,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 @@ -4949,8 +5037,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. @@ -4991,11 +5079,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 @@ -5275,8 +5363,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. @@ -5487,8 +5575,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 @@ -5512,8 +5600,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. @@ -5541,8 +5629,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 @@ -5856,8 +5944,8 @@ always use the latest docs


        -
        -

        6.4.6 org table mode

        +
        +

        6.4.6 org table mode

        I'm so used to lovely org mode tables, I need them everywhere! @@ -6287,8 +6375,8 @@ allow me to insert org tables everywhere on request

        -
        -

        6.4.7 org mode slideshows

        +
        +

        6.4.7 org mode slideshows

        Making presentations within emacs with org mode is cool as well. @@ -6396,8 +6484,8 @@ Will be inserted as first help slide in a slide show


        -
        -

        6.4.8 outshine mode

        +
        +

        6.4.8 outshine mode

        I maintain my emacs config with outshine mode. It works a lot like @@ -6577,8 +6665,8 @@ posting online, which makes it way easier to read.

        -
        -

        6.4.9 outline mode

        +
        +

        6.4.9 outline mode

        I use the very same cycle style as in org mode: when on a heading, @@ -6675,8 +6763,8 @@ orange fringe when narrowed


        -
        -

        6.4.10 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. @@ -6716,8 +6804,8 @@ via -

        6.4.11 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. @@ -6833,8 +6921,8 @@ finally the inferior REPLs:

        -
        -

        6.4.12 Puppet

        +
        +

        6.4.12 Puppet

        adds hook for .pp files @@ -6848,8 +6936,8 @@ adds hook for .pp files

        -
        -

        6.4.13 Novel Mode - Screen Reader

        +
        +

        6.4.13 Novel Mode - Screen Reader

        my own emacs screen reader, very handy to read docs on the road. @@ -6865,8 +6953,8 @@ my own emacs screen reader, very handy to read docs on the road.

        -
        -

        6.4.14 Macro Math

        +
        +

        6.4.14 Macro Math

        see macro-math @@ -6889,8 +6977,8 @@ mark something and hit C-x C-0 (which is a reminder to C-x C-= w/o the shift)

        -
        -

        6.4.15 Common-Lisp (SLIME)

        +
        +

        6.4.15 Common-Lisp (SLIME)

        I'm learing CL with slime, start with M-x slime. @@ -6923,8 +7011,8 @@ INSTALL: (see: -

        6.4.16 INFO Mode

        +
        +

        6.4.16 INFO Mode

        (require 'info)
        @@ -7055,8 +7143,8 @@ from examples, I love this one!, replaces the ? buffer
         
        -
        -

        6.4.17 calc et al.

        +
        +

        6.4.17 calc et al.

        emacs provides 4 ways to calculate: @@ -7106,8 +7194,8 @@ or, inferior perl calc: M-x icalc, see above

        -
        -

        6.4.18 MACROs

        +
        +

        6.4.18 MACROs

        help: emacswiki macro tricks. @@ -7320,8 +7408,8 @@ but only load if in use


        -
        -

        6.4.19 EWW browser stuff

        +
        +

        6.4.19 EWW browser stuff

        Emacs has a builtin browser, which is not too bad. @@ -7389,8 +7477,8 @@ hides menus and distractions! Update emacs.


        -
        -

        6.4.20 Firestarter

        +
        +

        6.4.20 Firestarter

        experimental: do things on save buffer etc. @@ -7399,8 +7487,8 @@ Source: firestarter

        -
        -

        6.4.21 Tabulated List Mode

        +
        +

        6.4.21 Tabulated List Mode

        built-in, used by many interactive major modes @@ -7448,8 +7536,8 @@ we need to kill tablist's binding in order to have ours run (see below)

        -
        -

        6.4.22 Help Mode

        +
        +

        6.4.22 Help Mode

        I even customize help windows! … at least a little :) @@ -7465,20 +7553,22 @@ I even customize help windows! … at least a little :) '(progn (add-hook 'help-mode-hook (lambda () - (local-set-key (kbd "q") 'tvd-close-help) - (local-set-key (kbd "x") 'quit-window) + ; doesn' work the way I like + ;(local-set-key (kbd "q") 'tvd-close-help) + (local-set-key (kbd "q") 'quit-window) (local-set-key (kbd "p") 'help-go-back) (local-set-key (kbd "b") 'help-go-back) (local-set-key (kbd "n") 'help-go-forward) (local-set-key (kbd "f") 'help-go-forward) + (setq help-window-select t) ))))

        -
        -

        6.4.23 Suggest Mode

        +
        +

        6.4.23 Suggest Mode

        suggest mode is a great @@ -7528,8 +7618,8 @@ I use my own clearing function, since suggest doesn't provide this

        -
        -

        6.4.24 Followcursor Mode

        +
        +

        6.4.24 Followcursor Mode

        source on github @@ -7558,8 +7648,8 @@ The mode is a work-in-progress… -

        -

        6.4.25 Magit

        +
        +

        6.4.25 Magit

        Not much to say about Magit @@ -7594,13 +7684,11 @@ Not much to say about Magit (expand-file-name "~/dev/git"))) (when (file-exists-p dir) (add-to-list 'magit-repository-directories (cons dir 1)))) - - ;; timestamps not ages - (setq magit-log-margin '(t "%Y-%m-%d " magit-log-margin-width t 18)) - - ;; use ido (setq magit-completing-read-function 'magit-ido-completing-read) + ;; use timestamps in log buffers + (setq magit-log-margin '(t "%Y-%m-%d " magit-log-margin-width t 18)) + ;; navigate magit buffers as I do everywhere else, I do not automatically ;; cycle/decycle though, the magit defaults are absolutely sufficient. (define-key magit-mode-map (kbd "<C-down>") 'magit-section-forward-sibling) @@ -7636,15 +7724,28 @@ Not much to say about Magit (let ((dir (magit-read-repository))) (magit-mode-bury-buffer) (magit-status dir))) - (define-key magit-mode-map (kbd "C") 'tvd-switch-magit-repo)) + (define-key magit-mode-map (kbd "C") 'tvd-switch-magit-repo) + + ;; via + ;; http://manuel-uberti.github.io/emacs/2018/02/17/magit-bury-buffer/: + ;; a great enhancement, when closing the magit status buffer, ALL + ;; other possibly still remaining magit buffers will be killed as + ;; well AND the window setup will be restored. + (defun tvd-kill-magit-buffers() + "Restore window setup from before magit and kill all magit buffers." + (interactive) + (let ((buffers (magit-mode-get-buffers))) + (magit-restore-window-configuration) + (mapc #'kill-buffer buffers))) + (define-key magit-status-mode-map (kbd "q") #'tvd-kill-magit-buffers))


        -
        -

        6.4.26 Dired

        +
        +

        6.4.26 Dired

        I use dired for two things: from inside magit as a convenient way @@ -7662,7 +7763,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 @@ -7684,7 +7785,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. @@ -7704,7 +7805,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 @@ -7734,7 +7835,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 @@ -7791,7 +7892,7 @@ called with "hydras".

  • -
  • dired navigation
    +
  • dired navigation

    I'm used to jump around with pos1+end

    @@ -7811,7 +7912,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 @@ -7839,7 +7940,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.

    @@ -7894,7 +7995,7 @@ and finally put everything together.
  • -
  • Dired Hydra
    +
  • Dired Hydra

    FIXME: not yet customized to fit my own config

    @@ -7908,7 +8009,7 @@ and finally put everything together. _Y_ rel symlink _G_ chgrp _E_xtension mark _s_ort _=_ pdiff _S_ymlink ^ ^ _F_ind marked _._ toggle hydra \\ flyspell _r_sync ^ ^ ^ ^ ^ ^ _?_ summary -_z_ compress-file _A_ find regexp +_z_ compress-file _A_ find regexp / Filter _Z_ compress _Q_ repl regexp T - tag prefix @@ -7958,8 +8059,8 @@ and finally put everything together.
  • -
    -

    6.4.27 Ediff Config

    +
    +

    6.4.27 Ediff Config

    Force ediff to use 1 frame (the current) and not open a new frame @@ -8007,8 +8108,8 @@ Usage: emacs -diff file1 file2


    -
    -

    6.4.28 Projectile

    +
    +

    6.4.28 Projectile

    (require 'projectile)
    @@ -8058,8 +8159,8 @@ Usage: emacs -diff file1 file2
     
    -
    -

    6.4.29 Occur

    +
    +

    6.4.29 Occur

    https://oremacs.com/2015/01/26/occur-dwim/ @@ -8083,8 +8184,8 @@ Usage: emacs -diff file1 file2

    -
    -

    6.4.30 Window Hydra

    +
    +

    6.4.30 Window Hydra

    brightness wrappers @@ -8132,13 +8233,13 @@ brightness wrappers ^Window Management^ ^^------------------------------------------------------------------------ _+_ Increase Font | _-_ Decrease Font Resize ^ ^ _w_ ^ ^ -_f_: Flip Windows <M-O> ^^ Current a ^ ^ _d_ +_f_: Flip Windows <M-O> ^^ Current ← ^ ^ _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 _i_: Invert Colors <C-c C-i> ^^ _b_: Adjust Background darker -_h_: Toggle Highlight Line Mode ^^ _k_: Kill All Buffers +_h_: Toggle Highlight Line Mode ^^ _e_: Eyebrowse Workspaces (C-x C-x) _n_: Toogle Line Number Mode ^^------------------------------------------------------------------------ @@ -8148,18 +8249,18 @@ brightness wrappers " ("+" tvd-global-font-size-bigger nil :color pink) ("-" tvd-global-font-size-smaller nil :color pink) - ("f" flip-windows nil) + ("f" tvd-flip-windows nil) ("4" tvd-quarter-windows nil) ("u" winner-undo nil) ("r" winner-redo nil) ("i" tvd-invert nil) - ("k" kill-all-buffers nil) ("b" tvd-bg-darker nil :color pink) ("l" tvd-bg-brighter 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) + ("e" hydra-eyebrowse/body nil) ("h" hl-line-mode nil) ("n" linum-mode nil) ("q" nil nil :color red)) @@ -8169,14 +8270,106 @@ brightness wrappers

    + + +
    +

    6.4.31 Eyebrowse Workspaces

    +
    +

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

    + +

    +"prefix key" has to be set before loading, keep in mind, that +if you change it here, you need to change it below as well! +

    +
    +
    (setq eyebrowse-keymap-prefix (kbd "C-x C-x"))
    +(global-unset-key (kbd "C-x C-x"))
    +
    +(require 'eyebrowse)
    +
    +(defun tvd-new-eyebrowse-workspace ()
    +  "Create new scratch buffer and ask for a name"
    +  (interactive)
    +  (eyebrowse-rename-window-config (eyebrowse--get 'current-slot) (read-string "Workspace: "))
    +  (autoscratch-buffer))
    +
    +

    +always enable +

    +
    +
    (eyebrowse-mode t)
    +(setq eyebrowse-new-workspace 'tvd-new-eyebrowse-workspace
    +      eyebrowse-switch-back-and-forth t
    +      eyebrowse-wrap-around t
    +      eyebrowse-mode-line-style t
    +      eyebrowse-slot-format "%s:init")
    +
    +
    -
    -

    6.5 Emacs Interface

    +

    +add a hydra, just in case, it contains hydra commands and hints +about the actual key bindings, it's also being refered from +hydra-window/body with "e" +

    +
    +
    (defhydra hydra-eyebrowse (:color blue)
    +  "
    +^Eyebrowse Workspace Management^
    +^^--------------------------------------
    +_l_: last window      (C-x C-x C-x)
    +_n_: next window      (C-x C-x <right>)
    +_p_: prev window      (C-x C-x <left>)
    +_x_: close workspace  (C-x C-x q)
    +_t_: rename workspace (C-x C-x t)
    +_c_: create workspace (C-x C-x n)
    +
    +Use C-x C-x to access eyebrowse directly.
    +"
    +  ("l" eyebrowse-last-window-config nil)
    +  ("n" eyebrowse-next-window-config nil)
    +  ("p" eyebrowse-prev-window-config nil)
    +  ("x" eyebrowse-close-window-config nil)
    +  ("t" eyebrowse-rename-window-config nil)
    +  ("c" eyebrowse-create-window-config nil)
    +  ("q" nil nil :color red))
    +
    +
    + +

    +Modifying the eyebrowse keymap directly doesn't work because it's +not setup correctly. I sent a pull request to fix this: +https://github.com/wasamasa/eyebrowse/pull/94, however, vaslilly choosed +not to accept it. So, I need to configure the whole chords for every +function I use AND set the "prefix key" using the weird way above +(before loading). +

    +
    +
    (global-set-key (kbd "C-x C-x C-x")     'eyebrowse-last-window-config)
    +(global-set-key (kbd "C-x C-x <right>") 'eyebrowse-next-window-config)
    +(global-set-key (kbd "C-x C-x <left>")  'eyebrowse-prev-window-config)
    +(global-set-key (kbd "C-x C-x q")       'eyebrowse-close-window-config)
    +(global-set-key (kbd "C-x C-x t")       'eyebrowse-rename-window-config)
    +(global-set-key (kbd "C-x C-x n")       'eyebrowse-create-window-config)
    +(global-set-key (kbd "C-x C-x ?")       'hydra-eyebrowse/body)
    +
    +
    + +

    +There's also some face config, see defcustom at end of file! +

    +
    +
    +
    + +
    +

    6.5 Emacs Interface

    -
    -

    6.5.1 Parens

    +
    +

    6.5.1 Parens

    display matching braces @@ -8197,8 +8390,8 @@ display matching braces

    -
    -

    6.5.2 highlight todo keywords (such as FIXME)

    +
    +

    6.5.2 highlight todo keywords (such as FIXME)

    Absolutely needed! @@ -8213,8 +8406,8 @@ Absolutely needed!


    -
    -

    6.5.3 UNDO Tree Mode

    +
    +

    6.5.3 UNDO Tree Mode

    Better undo, with redo support. @@ -8257,8 +8450,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. @@ -8281,8 +8474,8 @@ fails @win, so wrap it

    -
    -

    6.5.5 Smarter Search

    +
    +

    6.5.5 Smarter Search

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

    -
    -

    6.5.6 Which Func

    +
    +

    6.5.6 Which Func

    display current function - if any - in mode line @@ -8314,8 +8507,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)
    @@ -8334,8 +8527,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 @@ -8363,8 +8556,7 @@ setup I like to have a longer list reaching deeper into the past

    -
    (setq recentf-max-menu-items 200
    -      recentf-max-menu-items 30)
    +
    (setq recentf-max-menu-items 200)
     
    @@ -8429,8 +8621,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 @@ -8572,8 +8764,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 @@ -8594,8 +8786,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. @@ -8624,8 +8816,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 @@ -8648,8 +8840,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 @@ -8667,8 +8859,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]. @@ -8685,8 +8877,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 @@ -8718,8 +8910,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 @@ -8731,7 +8923,7 @@ press from there along with the associated functions.

    (require 'which-key)
     (which-key-mode)
    -(which-key-setup-side-window-bottom)
    +(which-key-setup-side-window-right)
     
    @@ -8739,8 +8931,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 @@ -8950,8 +9142,8 @@ override ibuffer M-o binding

    -
    -

    6.5.18 Printing

    +
    +

    6.5.18 Printing

    overwrites printing default menu, access via menu File => Print @@ -8996,8 +9188,8 @@ via -

    6.5.19 Beacon mode (pointer blink)

    +
    +

    6.5.19 Beacon mode (pointer blink)

    Source: beacon mode @@ -9027,8 +9219,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 @@ -9079,6 +9271,9 @@ custom modeline " [" tvd-emacs-version "] " + ; added because of eyebrowse + mode-line-misc-info + '(:eval (propertize (if (eq defining-kbd-macro t) "[REC]" @@ -9093,13 +9288,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. @@ -9153,15 +9348,7 @@ show available colors: '(outline-4 ((t (:height 1.05 :foreground "DodgerBlue3" :underline t)))) '(region ((t (:foreground "Aquamarine" :background "Darkblue")))) '(secondary-selection ((t (:foreground "Green" :background "darkslateblue")))) - '(wg-command-face ((t nil))) - '(wg-current-workgroup-face ((t nil))) - '(wg-divider-face ((t nil))) - '(wg-filename-face ((t nil))) - '(wg-frame-face ((t nil))) - '(wg-message-face ((t nil))) - '(wg-mode-line-face ((t nil))) - '(wg-other-workgroup-face ((t nil))) - '(wg-previous-workgroup-face ((t nil))) + '(eyebrowse-mode-line-active ((t (:foreground "Blue" :background "White" :bold t)))) '(which-func ((t (:background "blue" :foreground "white")))) '(which-key-key-face ((t (:weight bold))))) @@ -9179,8 +9366,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 @@ -9201,8 +9388,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 @@ -9219,7 +9406,7 @@ know easily that something went wrong.

    Author: Tom

    -

    Created: 2018-10-24 Mi 11:16

    +

    Created: 2018-11-11 So 14:00

    Validate