From 8f9056906d7241123cc8d85a340237eeef3620c4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 20 May 2019 15:54:40 -0400 Subject: [PATCH] Rethink scratch buffer keybinds & commands For non-evil users: x doom/open-scratch-buffer X doom/switch-to-scratch-buffer p s doom/open-project-scratch-buffer p S doom/switch-to-project-scratch-buffer For evil users: x doom/open-scratch-buffer b s doom/open-scratch-buffer b S doom/switch-to-scratch-buffer p s doom/open-project-scratch-buffer p S doom/switch-to-project-scratch-buffer --- core/autoload/scratch.el | 13 +++++++++++++ modules/config/default/+emacs-bindings.el | 5 +++-- modules/config/default/+evil-bindings.el | 11 +++++------ 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/core/autoload/scratch.el b/core/autoload/scratch.el index 91cbe2da8..39812b2fe 100644 --- a/core/autoload/scratch.el +++ b/core/autoload/scratch.el @@ -113,6 +113,12 @@ If PROJECT-P is non-nil, open a persistent scratch buffer associated with the (when project-p (doom-project-name)))))) +;;;###autoload +(defun doom/switch-to-scratch-buffer (&optional project-p) + "Like `doom/open-scratch-buffer', but switches to it in the current window." + (interactive) + (doom/open-scratch-buffer t)) + ;;;###autoload (defun doom/open-project-scratch-buffer (&optional arg) "Opens the (persistent) project scratch buffer in a popup. @@ -121,6 +127,13 @@ If passed the prefix ARG, switch to it in the current window." (interactive "P") (doom/open-scratch-buffer arg 'project)) +;;;###autoload +(defun doom/switch-to-project-scratch-buffer () + "Like `doom/open-project-scratch-buffer', but switches to it in the current +window." + (interactive) + (doom/open-project-scratch-buffer t)) + ;;;###autoload (defun doom/revert-scratch-buffer () "Revert scratch buffer to last persistent state." diff --git a/modules/config/default/+emacs-bindings.el b/modules/config/default/+emacs-bindings.el index a5752dfe1..adc5fb47b 100644 --- a/modules/config/default/+emacs-bindings.el +++ b/modules/config/default/+emacs-bindings.el @@ -23,7 +23,7 @@ :desc "Find file in project" "C-f" #'projectile-find-file :desc "Evaluate line/region" "e" #'+eval/line-or-region :desc "Open scratch buffer" "x" #'doom/open-scratch-buffer - :desc "Open project scratch buffer" "X" #'doom/open-project-scratch-buffer + :desc "Open project scratch buffer" "X" #'doom/switch-to-scratch-buffer (:when (featurep! :term term) :desc "Terminal" "`" #'+term/open @@ -80,7 +80,8 @@ :desc "Find file in other project" "F" #'doom/find-file-in-other-project :desc "Search project" "s" #'+default/search-project :desc "List project tasks" "t" #'+default/project-tasks - :desc "Open project scratch buffer" "x" #'doom/open-project-scratch-buffer + :desc "Open project scratch buffer" "s" #'doom/open-project-scratch-buffer + :desc "Switch to project scratch buffer" "S" #'doom/switch-to-project-scratch-buffer ;; later expanded by projectile (:prefix ("4" . "in other window")) (:prefix ("5" . "in other frame"))) diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 7652b7966..3dc457c08 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -576,9 +576,8 @@ :desc "New empty buffer" "N" #'evil-buffer-new :desc "Kill other buffers" "o" #'doom/kill-other-buffers :desc "Previous buffer" "p" #'previous-buffer - :desc "Save buffer" "s" #'save-buffer - :desc "Sudo edit this file" "S" #'doom/sudo-this-file - :desc "Pop scratch buffer" "x" #'doom/open-scratch-buffer + :desc "Pop up scratch buffer" "s" #'doom/open-scratch-buffer + :desc "Switch to scratch buffer" "S" #'doom/switch-to-scratch-buffer :desc "Bury buffer" "z" #'bury-buffer) ;;; c --- code @@ -677,12 +676,11 @@ :desc "Browse notes" "." #'+default/browse-notes :desc "Search notes" "/" #'+default/org-notes-search :desc "Search notes for symbol" "*" #'+default/search-notes-for-symbol-at-point + :desc "Org capture" "c" #'org-capture :desc "Open deft" "d" #'deft :desc "Search org agenda headlines" "h" #'+default/org-notes-headlines :desc "Find file in notes" "n" #'+default/find-in-notes :desc "Browse notes" "N" #'+default/browse-notes - :desc "Pop scratch buffer" "s" #'doom/open-scratch-buffer - :desc "Org capture" "x" #'org-capture :desc "Org store link" "l" #'org-store-link) ;;; o --- open @@ -750,7 +748,8 @@ :desc "Find other file" "o" #'projectile-find-other-file :desc "Switch project" "p" #'projectile-switch-project :desc "Find recent project files" "r" #'projectile-recentf - :desc "Scratch buffer" "s" #'doom/open-project-scratch-buffer + :desc "Pop up scratch buffer" "s" #'doom/open-project-scratch-buffer + :desc "Switch to scratch buffer" "S" #'doom/switch-to-project-scratch-buffer :desc "List project tasks" "t" #'+default/project-tasks (:prefix ("x" . "terminal") :desc "Open eshell in project" "e" #'projectile-run-eshell