From ffdffcb42d20480a4bb9a30066bfb02350364ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Pankowski?= Date: Sun, 25 Feb 2018 10:27:19 +0100 Subject: [PATCH] use key chords (bb, jj and tt) --- init.el | 43 +++++++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/init.el b/init.el index 01e83c7..9a2f95c 100644 --- a/init.el +++ b/init.el @@ -52,6 +52,9 @@ (require 'use-package) +(use-package use-package-chords + :ensure nil + :config (key-chord-mode 1)) ;;; This also turns on checking TLS certificates (in both possible modes) ;;; with `tls-program` set to only the first value from the default value @@ -166,7 +169,17 @@ (use-package treemacs :ensure nil :bind - ("C-c t" . treemacs-toggle)) + ("C-c t" . treemacs-toggle) + :chords + (("tt" . treemacs-toggle))) + +(use-package buffer-flip + :ensure nil + :chords (("bb" . buffer-flip)) + :bind (:map buffer-flip-map + ( "b" . buffer-flip-forward) + ( "B" . buffer-flip-backward) + ( "C-g" . buffer-flip-abort))) ;;; Editing enhancements @@ -820,24 +833,30 @@ inserted between the braces between the braces." ;;; ----------------- -;;; Set keys from H-a to H-z to switch to buffers from a register from a to z +;;; Set keys from jj a to jj z to switch to buffers from a register from a to z (defalias 'pr #'point-to-register) -(require 'cl) +(defun my-switch-to-register () + "Switch to buffer given by a register named by last character +of the key binding used to execute this command." + (interactive) + (let* ((v (this-command-keys-vector)) + (c (aref v (1- (length v)))) + (r (get-register c))) + (if (and (markerp r) (marker-buffer r)) + (switch-to-buffer (marker-buffer r)) + (jump-to-register c)))) + +(setq my-jj-map (make-sparse-keymap)) + (let ((character ?a)) (while (<= character ?z) - (let ((func-name-symbol (make-symbol (format "my-switch-to-register-%c" character)))) - (global-set-key (kbd (format "H-%c" character)) - (eval (list 'defun func-name-symbol '() - (format "switch to buffer of register %c" character) - '(interactive) - `(let ((r (get-register ,character))) - (if (and (markerp r) (marker-buffer r)) - (switch-to-buffer (marker-buffer r)) - (jump-to-register ,character))))))) + (define-key my-jj-map (format "%c" character) #'my-switch-to-register) (incf character))) +(key-chord-define-global "jj" my-jj-map) + ;;; Search engines ;;; --------------