categorized shortcuts
This commit is contained in:
parent
efa760f0cf
commit
a6b3a60910
@ -110,6 +110,13 @@
|
|||||||
- [[#rust][Rust]]
|
- [[#rust][Rust]]
|
||||||
- [[#scheme][Scheme]]
|
- [[#scheme][Scheme]]
|
||||||
- [[#shortcuts-1][Shortcuts]]
|
- [[#shortcuts-1][Shortcuts]]
|
||||||
|
- [[#applications][Applications]]
|
||||||
|
- [[#comments][Comments]]
|
||||||
|
- [[#files][Files]]
|
||||||
|
- [[#multiple-cursors][Multiple cursors]]
|
||||||
|
- [[#org-mode-1][Org-mode]]
|
||||||
|
- [[#toggle][Toggle]]
|
||||||
|
- [[#text][Text]]
|
||||||
- [[#yadm][Yadm]]
|
- [[#yadm][Yadm]]
|
||||||
- [[#footnotes][Footnotes]]
|
- [[#footnotes][Footnotes]]
|
||||||
|
|
||||||
@ -2680,42 +2687,107 @@
|
|||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: h-f193126f-abc1-4287-aa70-4f2080d2ef8f
|
:CUSTOM_ID: h-f193126f-abc1-4287-aa70-4f2080d2ef8f
|
||||||
:END:
|
:END:
|
||||||
As you will see, I defined A LOT of custom shortcuts. First, I have some
|
As you will see, I defined A LOT of custom shortcuts. All of them are
|
||||||
shortcuts defined the vanilla Emacs way:
|
Spacemacs shortcuts, defined in a way they can be used seamlessly with Evil.
|
||||||
#+BEGIN_SRC emacs-lisp
|
First of all, these shortcuts all begin with ~o~, which is a prefix reserved
|
||||||
(global-set-key (kbd "C-x C-b") 'ibuffer)
|
for user-defined shortcuts so they won’t conflict with any package. Let’s
|
||||||
(global-set-key (kbd "S-C-<left>") 'shrink-window-horizontally)
|
declare it like so.
|
||||||
(global-set-key (kbd "S-C-<right>") 'enlarge-window-horizontally)
|
|
||||||
(global-set-key (kbd "S-C-<down>") 'shrink-window)
|
|
||||||
(global-set-key (kbd "S-C-<up>") 'enlarge-window)
|
|
||||||
(global-set-key (kbd "C-x <up>") 'windmove-up)
|
|
||||||
(global-set-key (kbd "C-x <down>") 'windmove-down)
|
|
||||||
(global-set-key (kbd "C-x <right>") 'windmove-right)
|
|
||||||
(global-set-key (kbd "C-x <left>") 'windmove-left)
|
|
||||||
(global-set-key (kbd "C-<prior>") 'previous-buffer)
|
|
||||||
(global-set-key (kbd "C-<next>") 'next-buffer)
|
|
||||||
(global-set-key (kbd "M-»") 'end-of-buffer)
|
|
||||||
(global-set-key (kbd "M-«") 'beginning-of-buffer)
|
|
||||||
(global-set-key (kbd "<XF86HomePage>") 'spacemacs/home)
|
|
||||||
(global-set-key (kbd "<XF86Open>") 'helm-find-files)
|
|
||||||
(global-set-key (kbd "<XF86Close>") 'kill-this-buffer)
|
|
||||||
(global-set-key (kbd "<XF86Save>") 'save-buffer)
|
|
||||||
(global-set-key (kbd "<C-tab>") 'evil-close-fold)
|
|
||||||
(global-set-key (kbd "<S-C-tab>") 'evil-close-folds)
|
|
||||||
(global-set-key (kbd "<C-iso-lefttab>") 'evil-open-fold)
|
|
||||||
#+END_SRC
|
|
||||||
These shortcuts can be called as-is, that is, typing ~C-x C-b~ will call
|
|
||||||
~ibuffer~.
|
|
||||||
|
|
||||||
Now, I also have some Spacemacs shortcuts, defined in a way they can be used
|
|
||||||
seamlessly with Evil. First, let’s declare some prefixes in order to avoid
|
|
||||||
seeing lots of ~custom~ in helm:
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(spacemacs/declare-prefix "o" "custom")
|
(spacemacs/declare-prefix "o" "custom")
|
||||||
(spacemacs/declare-prefix "oa" "applications")
|
#+END_SRC
|
||||||
|
|
||||||
|
Now, all shortcuts that will be defined can be invoked in Normal-mode with
|
||||||
|
the src_emacs-lisp[:exports results]{(princ dotspacemacs-leader-key)} key
|
||||||
|
followed by the sequence assigned to each shortcut.
|
||||||
|
|
||||||
|
Before some more specialized categories, I have two commands which don’t fit
|
||||||
|
into any other category that I sometime use:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
(spacemacs/declare-prefix "oB" "byte-compile .emacs.d")
|
(spacemacs/declare-prefix "oB" "byte-compile .emacs.d")
|
||||||
|
(spacemacs/declare-prefix "or" "external command")
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
|
"oB" (lambda () (byte-recompile-directory (expand-file-name "~/.emacs.d") 0))
|
||||||
|
"or" 'helm-run-external-command)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
~oB~ byte-compiles every ~.el~ file located in the =~/.emacs.d/= directory —
|
||||||
|
it can be useful in case of package upgrade and an old ~.elc~ file still
|
||||||
|
loads instead of an uncompiled but newer ~.el~ file.
|
||||||
|
|
||||||
|
~or~ on the other hand invokes an external comand the same way [[https://wiki.archlinux.org/index.php/Dmenu][dmenu]] would.
|
||||||
|
|
||||||
|
*** Applications
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h-928236e4-66e6-4d15-acd9-2748b90fdc70
|
||||||
|
:END:
|
||||||
|
As this is a new category, let’s declare its prefix:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/declare-prefix "oa" "applications")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Now, let’s also declare the shortcuts in this category:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
|
"oac" 'calc
|
||||||
|
"oaC" 'calendar
|
||||||
|
"oae" 'eww
|
||||||
|
"oaw" 'wttrin)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
~oac~ will invoke Emacs’ calculator, while ~oac~ invokes the calendar, ~oae~
|
||||||
|
invokes the Eww navigator and ~oaw~ invokes the weather forecast.
|
||||||
|
|
||||||
|
*** Comments
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h-f91ff790-3511-471a-83ce-4071a6e33420
|
||||||
|
:END:
|
||||||
|
Some shortcuts are also related to comment editing, in particular using
|
||||||
|
outorg. Let’s first declare the dedicated prefix:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
(spacemacs/declare-prefix "oc" "comments")
|
(spacemacs/declare-prefix "oc" "comments")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Now, let’s declare the following shortcuts:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
|
"occ" 'outorg-copy-edits-and-exit
|
||||||
|
"oce" 'outorg-edit-as-org
|
||||||
|
"oco" 'outline-minor-mode)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
~oco~ enables the outline minor mode, which then allows for the edition of
|
||||||
|
comments in org buffers with ~oce~ and saving them to the original source
|
||||||
|
file with ~occ~.
|
||||||
|
|
||||||
|
*** Files
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h-37877887-e6d0-4e05-a2eb-566f349b76f6
|
||||||
|
:END:
|
||||||
|
This category is mainly used for opening configuration files, but it is also
|
||||||
|
more generally for files-related commands. Let’s declare the category:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
(spacemacs/declare-prefix "of" "files")
|
(spacemacs/declare-prefix "of" "files")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
If a file is designated in a buffer, it is possible to open it with the
|
||||||
|
following shortcut:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/set-leader-keys "ofo" 'find-file-at-point)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Now, Let’s declare shortcuts related to my configuration files. Here is the
|
||||||
|
list of them:
|
||||||
|
- [[file:bin.org][bin.org]] :: contains the source code of my custom scripts in my ~$PATH~
|
||||||
|
- [[file:spacemacs.org][spacemacs.org]] :: this file, configuration of Emacs
|
||||||
|
- [[file:fish.org][fish.org]] :: configuration of my fish shell
|
||||||
|
- [[file:i3.org][i3.org]] :: configuration of my i3 installation
|
||||||
|
- [[file:index.org][index.org]] :: some various configuration files and index of this website
|
||||||
|
- [[file:polybar.org][polybar.org]] :: configuration polybar
|
||||||
|
- [[https://labs.phundrak.com/phundrak/dotfiles][README.org]] :: README of the yadm repo
|
||||||
|
Each of these files are accessible through a simple shortcut, and each one
|
||||||
|
of them has a description so the shortcut doesn’t show up as ~lambda~ with
|
||||||
|
~which-keys~.
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
(spacemacs/declare-prefix "ofb" "bin.org")
|
(spacemacs/declare-prefix "ofb" "bin.org")
|
||||||
(spacemacs/declare-prefix "ofe" "spacemacs.org")
|
(spacemacs/declare-prefix "ofe" "spacemacs.org")
|
||||||
(spacemacs/declare-prefix "off" "fish.org")
|
(spacemacs/declare-prefix "off" "fish.org")
|
||||||
@ -2723,70 +2795,123 @@
|
|||||||
(spacemacs/declare-prefix "ofI" "index.org")
|
(spacemacs/declare-prefix "ofI" "index.org")
|
||||||
(spacemacs/declare-prefix "ofp" "polybar.org")
|
(spacemacs/declare-prefix "ofp" "polybar.org")
|
||||||
(spacemacs/declare-prefix "ofr" "yadm README")
|
(spacemacs/declare-prefix "ofr" "yadm README")
|
||||||
(spacemacs/declare-prefix "oi" "insert")
|
|
||||||
(spacemacs/declare-prefix "oii" "invisible space")
|
|
||||||
(spacemacs/declare-prefix "om" "multiple-cursors")
|
|
||||||
(spacemacs/declare-prefix "oo" "org-mode")
|
|
||||||
(spacemacs/declare-prefix "ooi" "custom IDs")
|
|
||||||
(spacemacs/declare-prefix "oos" "structure")
|
|
||||||
(spacemacs/declare-prefix "oot" "tables")
|
|
||||||
(spacemacs/declare-prefix "oott" "toggle width")
|
|
||||||
(spacemacs/declare-prefix "oote" "expand")
|
|
||||||
(spacemacs/declare-prefix "oots" "shrink")
|
|
||||||
(spacemacs/declare-prefix "or" "external command")
|
|
||||||
(spacemacs/declare-prefix "ot" "toggle")
|
|
||||||
(spacemacs/declare-prefix "ow" "writeroom")
|
|
||||||
(spacemacs/declare-prefix "ox" "text")
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
Now, onto the shortcuts:
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(spacemacs/set-leader-keys
|
(spacemacs/set-leader-keys
|
||||||
"oac" 'calc
|
|
||||||
"oaC" 'calendar
|
|
||||||
"oae" 'eww
|
|
||||||
"oaw" 'wttrin
|
|
||||||
"oB" (lambda () (byte-recompile-directory (expand-file-name "~/.emacs.d") 0))
|
|
||||||
"ob" 'fancy-battery-mode
|
|
||||||
"occ" 'outorg-copy-edits-and-exit
|
|
||||||
"oce" 'outorg-edit-as-org
|
|
||||||
"oco" 'outline-minor-mode
|
|
||||||
"od" 'elcord-mode
|
|
||||||
"oF" 'flycheck-mode
|
|
||||||
"ofb" (lambda () (interactive) (find-file "~/org/config/bin.org"))
|
"ofb" (lambda () (interactive) (find-file "~/org/config/bin.org"))
|
||||||
"ofe" (lambda () (interactive) (find-file "~/org/config/spacemacs.org"))
|
"ofe" (lambda () (interactive) (find-file "~/org/config/spacemacs.org"))
|
||||||
"off" (lambda () (interactive) (find-file "~/org/config/fish.org"))
|
"off" (lambda () (interactive) (find-file "~/org/config/fish.org"))
|
||||||
"ofi" (lambda () (interactive) (find-file "~/org/config/i3.org"))
|
"ofi" (lambda () (interactive) (find-file "~/org/config/i3.org"))
|
||||||
"ofI" (lambda () (interactive) (find-file "~/org/config/index.org"))
|
"ofI" (lambda () (interactive) (find-file "~/org/config/index.org"))
|
||||||
"ofp" (lambda () (interactive) (find-file "~/org/config/polybar.org"))
|
"ofp" (lambda () (interactive) (find-file "~/org/config/polybar.org"))
|
||||||
"ofr" (lambda () (interactive) (find-file "~/README.org"))
|
"ofr" (lambda () (interactive) (find-file "~/README.org")))
|
||||||
"ofo" 'find-file-at-point
|
#+END_SRC
|
||||||
"oii" (lambda () (interactive) (insert ""))
|
|
||||||
|
*** Multiple cursors
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h-de40bea1-4301-4ad3-b3f1-c4c8ed029feb
|
||||||
|
:END:
|
||||||
|
I don’t really like Spacemacs’ layer for MultipleCursors, so I prefer to
|
||||||
|
simply install the package and create shortcuts for it myself. Let’s first
|
||||||
|
declare category:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/declare-prefix "om" "multiple-cursors")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Now, let’s declare the shortcuts related to multiple-cursors:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
"ome" 'mc/edit-lines
|
"ome" 'mc/edit-lines
|
||||||
"omn" 'mc/mark-next-like-this
|
"omn" 'mc/mark-next-like-this
|
||||||
"omp" 'mc/mark-previous-like-this
|
"omp" 'mc/mark-previous-like-this
|
||||||
"oma" 'mc/mark-all-like-this
|
"oma" 'mc/mark-all-like-this)
|
||||||
"ooi" 'eos/org-add-ids-to-headlines-in-file
|
#+END_SRC
|
||||||
|
|
||||||
|
*** Org-mode
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h-beb15231-9718-4581-95dd-444c57190ee8
|
||||||
|
:END:
|
||||||
|
Now, onto some shortcuts related to org-mode. Let’s first declare the
|
||||||
|
category:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/declare-prefix "oo" "org-mode")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Now, I have a couple of shortcuts I use regularly:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
|
"oop" 'org-pomodoro
|
||||||
"oos" 'org-insert-structure-template
|
"oos" 'org-insert-structure-template
|
||||||
"ooT" 'org-sidebar-tree
|
"ooT" 'org-sidebar-tree)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
~oss~ allows me to insert an org structure template defined in
|
||||||
|
~org-structure-template-alist~ (see [[#h-81bcc367-4b2a-4a10-b42c-7b3cb7fd2d60][User Configuration/Org-mode/Org
|
||||||
|
Variables/Org behavior]]), while ~ooT~ displays the outline of the current org
|
||||||
|
file.
|
||||||
|
|
||||||
|
~oot~ is the prefix for tree-related operations:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/declare-prefix "oot" "tables")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
These shortcuts allow to manipulate the width of the column the cursor is
|
||||||
|
currently in, by either shrinking it, expanding it, or toggling its state
|
||||||
|
between shrunk or expanded. A prefix for all of these commands has been also
|
||||||
|
added in order to make the purpose of the shortcuts clearer.
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
"oott" 'org-table-toggle-column-width
|
"oott" 'org-table-toggle-column-width
|
||||||
"oote" 'org-table-expand
|
"oote" 'org-table-expand
|
||||||
"oots" 'org-table-shrink
|
"oots" 'org-table-shrink)
|
||||||
"oow" 'org-pomodoro
|
(spacemacs/declare-prefix "oott" "toggle width")
|
||||||
"owi" 'writeroom-increase-width
|
(spacemacs/declare-prefix "oote" "expand")
|
||||||
"or" 'helm-run-external-command
|
(spacemacs/declare-prefix "oots" "shrink")
|
||||||
"os" 'prettify-symbols-mode
|
#+END_SRC
|
||||||
"oti" 'toggle-input-method
|
|
||||||
"otI" 'set-input-method
|
*** Toggle
|
||||||
"owd" 'writeroom-decrease-width
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h-25a07df0-02b5-4e6e-a8a3-94a00dbbc54f
|
||||||
|
:END:
|
||||||
|
This category allows to toggle some modes and options.
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/declare-prefix "ot" "toggle")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
|
"otb" 'fancy-battery-mode
|
||||||
|
"otd" 'elcord-mode
|
||||||
|
"otf" 'flycheck-mode
|
||||||
|
"ots" 'prettify-symbols-mode)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
We also have some input methods-related shortcuts in a sub-category:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/declare-prefix "oti" "input methods")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
|
"otii" 'toggle-input-method
|
||||||
|
"otis" 'set-input-method)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
*** Text
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h-1852f9ec-e2ca-495b-a72e-c3258add8033
|
||||||
|
:END:
|
||||||
|
The last category is a text-related category. Let’s declare it:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/declare-prefix "ox" "text")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
The only command for now is a command that allows the use of ~C-u M-q~ with
|
||||||
|
the simple shortcut ~oxf~:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
"oxf" 'phundrak/fill-paragraph)
|
"oxf" 'phundrak/fill-paragraph)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
You can notice they all begin with ~o~. This is actually a userspace, and I
|
#+RESULTS:
|
||||||
know these shortcuts won’t conflict with any other packages. These shortcuts,
|
|
||||||
like a lot of Spacemacs shortcuts, can be called with the use of the leader
|
|
||||||
key, in my case ~SPC~. So, if I want to call the calculator, I will type ~SPC
|
|
||||||
o a c~.
|
|
||||||
|
|
||||||
** Yadm
|
** Yadm
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
|
Loading…
Reference in New Issue
Block a user