diff --git a/doc/DOCUMENTATION.org b/doc/DOCUMENTATION.org index bc0471170..3f62770f1 100644 --- a/doc/DOCUMENTATION.org +++ b/doc/DOCUMENTATION.org @@ -212,6 +212,7 @@ - [[#error-transient-state][Error transient state]] - [[#custom-fringe-bitmaps][Custom fringe bitmaps]] - [[#compiling][Compiling]] + - [[#quickrun][Quickrun]] - [[#editorconfig][EditorConfig]] - [[#emacs-server][Emacs Server]] - [[#connecting-to-the-emacs-server][Connecting to the Emacs server]] @@ -3689,6 +3690,14 @@ Spacemacs binds a few commands to support compiling a project. | ~SPC c m~ | =helm-make= | | ~SPC c r~ | recompile | +** Quickrun +Spacemacs can execute current buffer or region. + +| Key binding | Description | +|-------------+---------------------------------------------------| +| ~SPC x x~ | smart =quickrun= or =quickrun-region= | +| ~C-g~ | to dismiss a quickrun buffer without selecting it | + * EditorConfig Spacemacs has support for [[http://editorconfig.org/][EditorConfig]], a configuration file to "define and maintain consistent coding styles between different editors and IDEs." diff --git a/layers/+spacemacs/spacemacs-defaults/README.org b/layers/+spacemacs/spacemacs-defaults/README.org index 235a0b566..f5647d0fa 100644 --- a/layers/+spacemacs/spacemacs-defaults/README.org +++ b/layers/+spacemacs/spacemacs-defaults/README.org @@ -33,6 +33,7 @@ defaults. - package-menu - page-break-lines - process-menu + - quickrun - recentf - savehist - saveplace diff --git a/layers/+spacemacs/spacemacs-defaults/funcs.el b/layers/+spacemacs/spacemacs-defaults/funcs.el index b3c3fab89..cb29d5e2a 100644 --- a/layers/+spacemacs/spacemacs-defaults/funcs.el +++ b/layers/+spacemacs/spacemacs-defaults/funcs.el @@ -1782,6 +1782,14 @@ Decision is based on `dotspacemacs-line-numbers'." (not disabled-for-parent))))) +;; quick run +(defun spacemacs/quickrun () + "Call `quickrun' or `quickrun-region'" + (interactive) + (if (region-active-p) + (call-interactively 'quickrun-region) + (quickrun))) + ;; randomize region (defun spacemacs/randomize-words (beg end) diff --git a/layers/+spacemacs/spacemacs-defaults/packages.el b/layers/+spacemacs/spacemacs-defaults/packages.el index ab1be37bd..a0e426a22 100644 --- a/layers/+spacemacs/spacemacs-defaults/packages.el +++ b/layers/+spacemacs/spacemacs-defaults/packages.el @@ -48,6 +48,7 @@ ;; page-break-lines is shipped with spacemacs core (page-break-lines :location built-in) (process-menu :location built-in) + quickrun (recentf :location built-in) (savehist :location built-in) (saveplace :location built-in) @@ -377,6 +378,14 @@ (defun spacemacs-defaults/init-process-menu () (evilified-state-evilify process-menu-mode process-menu-mode-map)) +(defun spacemacs-defaults/init-quickrun () + (use-package quickrun + :defer t + :init + (setq quickrun-focus-p nil) + (spacemacs/set-leader-keys + "xx" 'spacemacs/quickrun))) + (defun spacemacs-defaults/init-recentf () (use-package recentf :defer (spacemacs/defer) diff --git a/layers/+spacemacs/spacemacs-evil/config.el b/layers/+spacemacs/spacemacs-evil/config.el index 448dcee7d..7204899f5 100644 --- a/layers/+spacemacs/spacemacs-evil/config.el +++ b/layers/+spacemacs/spacemacs-evil/config.el @@ -31,5 +31,5 @@ (defvar evil-lisp-safe-structural-editing-modes '() "A list of major mode symbols where safe structural editing is supported.") -(defvar spacemacs-evil-collection-allowed-list '(eww dired) +(defvar spacemacs-evil-collection-allowed-list '(eww dired quickrun) "List of modes Spacemacs will allow to be evilified by ‘evil-collection-init’.") diff --git a/layers/+spacemacs/spacemacs-visual/packages.el b/layers/+spacemacs/spacemacs-visual/packages.el index 2a2db72b5..947c28a0f 100644 --- a/layers/+spacemacs/spacemacs-visual/packages.el +++ b/layers/+spacemacs/spacemacs-visual/packages.el @@ -101,6 +101,7 @@ (setq popwin:special-display-config nil) ;; buffers that we manage + (push '("*quickrun*" :dedicated t :position bottom :stick t :noselect t :height 0.3) popwin:special-display-config) (push '("*Help*" :dedicated t :position bottom :stick t :noselect t :height 0.4) popwin:special-display-config) (push '("*Process List*" :dedicated t :position bottom :stick t :noselect nil :height 0.4) popwin:special-display-config) (push '(compilation-mode :dedicated nil :position bottom :stick t :noselect t :height 0.4) popwin:special-display-config)