refactor key bindings for applications to provide additional room for
applications and use lower case characters.
Move calc-dispatch to `SPC a *`
Relates to #13503
User purposes are exclusively for user configs.
Layers shall set purpose extensions instead to allow
reconfiguration.
The existing layers have been refactored to use
extensions now. So this kind of hack is not longer
needed.
spacemacs//fixup-window-configs is added as an `:around` advice for
`rename-buffer`. It should preserve `rename-buffer`'s return value,
which is the new name of the buffer.
Helm v3.3 no longer uses ido to get buffer list. So the change perp-mode makes
to ido won't affect helm anymore. Hence helm buffer list commands such as
helm-mini and helm-buffer-list will shows all buffers regardless of current
layout. Also `SPC l l` crashes with new helm.
This PR fixes them. We use the new helm variable helm-buffer-list-reorder-fn
to filter buffers. Because we compose this value users are still able to
customize this variable.
- added the same bindings you normally have under `SPC m d` under `SPC d`
similar to what Debug layer does. Most of the dap-bindings are not content
sensitive(e. g. rerun last debug session) and it doesn't make sense to restrict
them only to particular major modes.
- Moved `spacemacs/browse-docs-online-at-point` from `SPC d b` to `SPC h b d` to
avoid collisions.
- reuse the botom window for all windows that are in compilation mode and in
dap-server-log-mode. Without this change you will get two windows on top of each
other when you do `SPC c c` and then `SPC m d d d`
Add layer variable documentation for persp-autokill-buffer-on-remove
Set to kill-weak, then buffers are deleted when the layout is deleted.
https://github.com/Bad-ptr/persp-mode.el#suggested-configuration
Add usage section
- describe the core usage of layouts
Add keybindings section
- include all keybindings for the layer
Fix formatting
- = instead of ~ and vice versa
Resolve#11698
Add keybindings for the built in Emacs application called Easy PG, that provides
tools to encrypt/decrypt/sign/verify files and regions using PGP encryption.
Keybindings are defined using spacebind.
Resolve#13319
This is a squash commit including below commits
Add dotspacemacs--pretty-ignore-subdirs
Within the specified subdirs of `dotspacemacs-start-dir`,
spacemacs/prettify-org-buffer (and hence space-doc-mode) will not be called.
Without this variable, using spacemacs/open-junk-file to create an Org file will
result in prettification, which is not necessarily the desired behavior.
Call make-directory in spacemacs/open-junk-file
This imitates the behavior of open-junk-file.
Prevent spacemacs/open-junk-file from getting confused by Dired
If we're in a dired buffer, counsel-find-file will ignore
current-directory (i.e. junk-dir) and use (dired-current-directory) instead. We
fool Counsel by shadowing major-mode to nil.
Update CHANGELOG.develop re spacemacs/open-junk-file
Ivy-hydra is autoloaded so the require statement here is unnecessary. Because this require (commented out) statement was here before I uncommented it in the last PR (#13377), I leave it here (commented out) as it was before that PR.
Theme transient state key-binding `t` is broken if `ivy` completion framework is
used. The binding unconditionally invokes `helm-themes`.
This change adds a new function which takes care of invoking correct
theme-loader function based on completion framework currently in use.
The old binding used `helm-themes` but the new function uses already defined
`spacemacs/helm-themes` which removes the number of candidates limit.
There have been complains about issues with `clean-aindent-mode` from
multiple users. For some of these deactivating the mode in their user-init
did not work as intended. Therefore I have added a setting for it in the
dotfile.
Before this, `evil-ex-search-direction` would be left set to 'backward after:
- entering symbol highlight transient state mode (SPC s h)
- exiting the transient state
That means that pressing 'n' would go to the previous result instead of the next one.
even though we have a check if doom is actually set in
dotspacemacs-mode-line-theme in doom mode line init function. doom-modeline
still adds a bunch functions to hook `after-change-functions regardless of the
value of mode line theme name. Hence we need to put a toggle on the declaration
The cl package has been deprecated.
It had aliases for cl- prefixed commands without the cl- prefix.
Ex: letf or letf* instead of cl-letf or cl-letf*
On the `spacemacs-base` distribution, with the `ivy` layer.
When one tries to search with `SPC /`
(which calls `spacemacs/counsel-search`)
Then this error message is shown:
>spacemacs/counsel-search: Symbol’s function definition is void: letf*
It doesn't happen with the `helm` layer,
because it's search commands already has the `cl-` prefix.
There are also three instances of: `letf`
in the `spacemacs-editing-visual` layers functions:
- `spacemacs/toggle-centered-buffer` (`SPC w c c`)
- `spacemacs/toggle-distraction-free` (`SPC w c C`)
- `spacemacs/centered-buffer-transient-state` (`SPC w c .`)
Without the `cl-` prefix they show the error message:
>Symbol’s function definition is void: letf
Bind `SPC x d l` to `delete-blank-lines` (default: `C-x C-o`)
If the cursor is on a blank line:
- with blank lines above or below, then they are reduced to only one.
- without blank lines above or below, then the blank line is removed.
Add key bindings to the `SPC p l` persp switch project prompt:
- helm `C-d`
- ivy `d` in the `M-o` actions list
They create a new perspective with the project name
and open a dired buffer at the project root.
The suggestion to also add it to ivy was provided by nixmaniack.
`display-fill-column-indicator-mode` is a new native fill column indicator
mode implemented on C-level, thus has almost no performance penalty in contrast
with the legacy `fci-mode` implemented in elisp.
This commit implements conditional activation of the mentioned mode on
Emacs 27+. `fci-mode` is still available for previous Emacs versions.
Resolves#12884
doom-modeline-init was marked as obsolete in version: 1.6.0.
Add new mode: doom-modeline-mode.
868f1bb00b
The doom-modeline package is currently at version: 2.6.2.
Removed the parentheses around the buffer name number,
because the angle brackets are enough.
Added the frame argument.
Rewrote the accepted SPLIT arguments as a table.
The newly introduced function to compile an elpa package
was very much redundant with the existing recompile-elpa function.
I have adapted recompile-elpa so that it can be used for the helm action too.
In addition I have bound recompile-elpa to `SPC c C-c` to allow users to
easily recompile their entire elpa directory if the need arises.
I have also removed the error handling in the helm action in favor of
standard error reporting via the *Compile-Log* buffer.
- Removed the word `Manipulation` from the transient state titles:
- Buffer Manipulation Transient State and Window Manipulation TS
- Expanded the TS abbreviation to Transient State
- Documented the Buffer Transient State key binding:
`q` to quit the transient state
- Capitalized `Transient State` in the titles
- Window Transient State:
- Added a line break after the title in the folded hint.
This allows for more keys to be visible horizontally.
- Moved up the [?] help key after the title, so that
it's in the same place in both the folded and full
transient state.
The search next/previous commands are different
because of the `evil-search-module' values:
vim = evil-search
hybrid = isearch
- With the =vim= editing style in =normal= state:
- ~n~ =evil-ex-search-next=
- ~N~ =evil-ex-search-previous=
- With the =hybrid= editing style in =normal= state:
- ~n~ =evil-search-next=
- ~N~ =evil-search-previous=
Front end:
minified hint:
- Added `a`
- Sorted `w` alphabetically
full hint:
Sorted keys alphabetically:
- Select: a, o, w
- Other: d, D, u, U
Back end:
Grouped the keys by the transient state columns
problem:
the variable names: `dir`, `name`, and `filename` leads to confusion if they are
the old or new names
solution:
add the prefix `old-` to match `new-`,
use (`old-` `new-`) + `short-name` for just the `file.ext` (the `short-` idea
came from the `spacemacs/rename-file` function that's defined above this one),
and `old-full-path` instead of `old-filename` makes it clear that it's not just
the files name and extension.
problem:
renaming a file to it's current name, results in the message:
"File 'current-name' successfully renamed to 'current-name'"
solution:
when the new and old names are the same, show a rename failed message, and call
the rename function again
problem:
the rename command shows the same message:
"File 'old-file-name' successfully renamed to 'new-file-name'"
(without the directory path) for all three file operations:
move, rename and both move & rename
solution:
show messages that fit the rename operation,
and align the from and to path/file names,
to make it easier to see what changed.
And use the same message format when renaming a buffer.
Sometimes it is useful to go directly to the last error message in the buffer.
This function recursively calls 'spacemacs/next-error until the last error is
reached.
The binding "SPC e l" is associated with it
It has already been bound to <kbd>C-backspace</kbd> and
<kbd>C-delete</kbd>. Such an
additional binding is redundant (if hjkl navigation is not used) and
makes the original <kbd>C-h</kbd> binding
(help) unavailable.
Follow up the changes in the previous commit with some minor improvements
to formatting, grammar, spelling, and wording.
* layers/+distributions/spacemacs-docker/README.org: Replace "+" with
"and".
* layers/+email/mu4e/README.org: Use full sentences in the comments in the
mu4e-alert example.
* layers/+intl/japanese/README.org: Use verbatim markers for names of
files, functions, packages, and variables. Capitalize "Linux".
* layers/+os/osx/README.org: Capitalize "Emacs", "Vim", and "Evil".
* layers/+os/osx/config.el (osx-command-as, osx-use-dictionary-app):
* layers/+os/osx/keybindings.el (spacemacs/system-is-mac): Improve
docstrings.
* layers/+readers/dash/README.org: Capitalize "API", "Helm", and "Ivy".
* layers/+spacemacs/spacemacs-defaults/config.el
(delete-by-moving-to-trash): Use full sentences in comment.
* layers/+spacemacs/spacemacs-defaults/funcs.el
(spacemacs/toggle-frame-fullscreen-non-native): Improve docstrings.
Instead of using a single variable for all transient states' full-hint
toggle functions, define a unique variable for each toggle function so that
toggling the full hint for one transient state does not affect the others.
* CHANGELOG.develop: Add an entry for this change.
* layers/+spacemacs/spacemacs-defaults/keybindings.el
(spacemacs--window-manipulation-ts-full-hint-toggle): New variable.
(spacemacs//window-manipulation-ts-toggle-hint)
(spacemacs//window-manipulation-ts-hint): Replace
spacemacs--ts-full-hint-toggle with
spacemacs--window-manipulation-ts-full-hint-toggle.
* layers/+spacemacs/spacemacs-layouts/config.el
(spacemacs--ts-full-hint-toggle): Delete variable.
(spacemacs--layouts-ts-full-hint-toggle)
(spacemacs--workspaces-ts-full-hint-toggle): New variables.
* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs//layouts-ts-toggle-hint, spacemacs//layouts-ts-hint): Replace
spacemacs--ts-full-hint-toggle with spacemacs--layouts-ts-full-hint-toggle.
(spacemacs//workspaces-ts-toggle-hint, spacemacs//workspaces-ts-hint):
Replace spacemacs--ts-full-hint-toggle with
spacemacs--workspaces-ts-full-hint-toggle.
Use nil and t instead of 0 and 1 for spacemacs--ts-full-hint values.
* layers/+spacemacs/spacemacs-layouts/config.el
(spacemacs--ts-full-hint-toggle): Define with an initial value of nil.
* layers/+spacemacs/spacemacs-defaults/keybindings.el
(spacemacs//window-manipulation-ts-toggle-hint)
(spacemacs//window-manipulation-ts-hint):
* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs//layouts-ts-toggle-hint, spacemacs//layouts-ts-hint)
(spacemacs//workspaces-ts-toggle-hint, spacemacs//workspaces-ts-hint):
Replace (logxor ... 1) and (equal 1 ...) with (not ...) and a simple truth
check.
It applies to the editing styles:
- hybrid with the variable hybrid-style-enable-hjkl-bindings set to t
- vim
Moved the default key binding for ivy-switch-buffer-kill:
From: C-k
To: C-M-k
Thanks for the suggestion: asok
Remove empty lines:
- Two in the Layouts Transients State.
- Three in the Workspaces Transient State.
In the Layouts Transient State:
Move the navigation keys:
[n/C-l] next layout
[N/p/C-h] prev layout
closer to the top, to match the order in the Workspaces Transient State.
Change to a more generic description, without mentioning the other
completion name.
From: [l] layout w/helm/ivy
To: [l] another layout
Shorten the descriptions:
From: [w] workspaces transient state
To: [w] workspaces TS
and
From: [t] show a buffer without adding it to current layout
To: [t] show buffer w/o adding to layout
Indicate what's being added:
From: [A] add all from layout
To: [A] add all buffers from layout
In the Workspaces Transient State:
Rename "create" to "clone, because it's more descriptive and the
docstring for the variable "eyebrowse-new-workspace" says:
"nil: Clone last workspace."
From: [c/C] create workspace
To: [c/C] clone workspace
Add "TS" to the description to indicate that it switches to the Layouts
Transient State and then it will match "workspaces TS" in the Layouts
Transient State.
From: [l] layouts
To: [l] layouts TS
Instead of sorting "[l] layouts TS" alphabetically by it's key letter,
move it to the bottom of the "Go to" column. This has two benefits:
- The workspaces navigation keys are grouped together, without having
"[l] layouts TS" in the middle.
- And "[l] layouts TS" will be the last entry in the "Go to" column.
This matches the location of "[w] workspaces TS" in the Layouts
Transient State.
Change to a more generic description, without mentioning the other
completion name.
From: [w] workspace w/helm/ivy
To: [w] another workspace
Updated the Workspaces Transient State "SPC l w".
Added a new key: "[s/S] single win workspace" to the Actions column.
It creates a new workspace with a single window, that shows the
Spacemacs home buffer.
Moved the existing key: "[c/C] create workspace" to the Actions column.
Update 'spacemacs|create-align-repeat-x macro to add a docstring to created
functions. The docstring refers the user to the macro, providing a link to
the source code.
As winner-mode was moved from init.el to dump-init.el winner-mode
was not longer properly started for non-dumped emacs sessions.
Having winner-mode auto activate at startup did fix the issue
for non-dumping users but in turn broke the dumping process.
I have now moved the necessary winner-mode init to
spacemacs/setup-startup-hook which is only called
in the non-dumping case. To allow customizations I activate
winner-mode prior to loading user-init this will allow users
to deactivate winner-mode in the dotfile and fix ediff themselves
if this is wished for.
Lazy loading of `winner-mode` breaks `ediff` and
`winner-undo`. As a hotfix I have deactivated
lazy loading for that package for now.
Just activating `winner-mode` after `winner-undo`
or `winner-redo` has been called does not solve
the issues described in #12582.
Guard :requires against ivy not projectile. projectile is already owned by
buil-in spacemacs-project layer, so it's always t.
This prevents install of ivy, counsel, swiper and counsel-projectile
packages regardless of helm layer
problem:
Canceling "spacemacs/ace-buffer-links" with "C-g" showed the error message:
"goto-char: Wrong type argument: number-or-marker-p, t"
solution:
Only go to and press the link if it's a position (number).
Thanks sdwolfz for the suggestion to add underscore to the transient states,
then the shift key doesn't have to be released if it was held down to press `+`.
Added key bindings:
Evil numbers:
`SPC n _` decrease number under point
in the transient state:
`j` decrease number under point
`k` increase number under point
`SPC T T _` decrease transparency
`SPC z x _` scale down font
`SPC z f _` zoom out frame
Update documentation:
Zoom frame:
`q` quit transient state
Evil numbers:
`SPC n =` increase number under point
`SPC n _` decrease number under point
`0..9` add a number prefix argument
`q` quit transient state
Fixed a typo and made a small rewrite of the tip about using a prefix argument.
Added keys to transient states:
Font scaling:
Added `_` scale down
Reordered `k` assignment to match the order in the transient state
Frame transparency:
Added `_` decrease
Reordered `k` assignment to match the order in the transient state
Evil numbers:
Added `k` increase
Added `_` and `j` decrease
Zoom frame:
Added `_` zoom frame out
Reordered `k` assignment to match the order in the transient state
Which-key entries for Evil numbers `SPC n`:
Group together keys that call the same command:
From: + and =
To: +,=
From: - and _
To: -,_
`SPC h T e` for `emacs-tutorial` (aliased from `help-with-tutorial` for a more
descriptive name)
`SPC h T v` for `evil-tutor-start`
Added a wikipedia link to the `vi` article, where the origins of modal editing
is discussed.
Emacs 26 added built-in support for line numbers, relative line numbers, and
visual line numbers. Spacemacs supports only absolute and relative, but there is
no way to access the visual mode. It's hard to get around this, since Spacemacs
abstracts line numbers to a reasonably high degree.
Arguably, `visual` is much more useful than `relative` as a display type. Visual
line numbers are like relative line numbers, but only lines that are actually
showing are counted. This means:
1. Hidden lines are not counted. If a large amount of text is folded, the line
numbers won't jump from "10" to "546". This is particularly useful in
buffers like `magit-status`, where a large amount of information is folded
by default.
2. Lines that are wrapped are counted as multiple lines, since they're being
displayed as multiple lines in the editor. Each visual line will be
numbered - unlike `relative`, where the entire thing is numbered... Once.
With standard relative line numbers, you can't actually navigate using the line
numbers in the sidebar as soon as folded or wrapped lines are introduced. Since
this is one of the main use cases for relative line numbers, this is a big
problem.
Visual mode fixes that problem. Every line that's being displayed is labelled.
Numbers always correspond to the actual number of lines you'd need to navigate
to reach that line.
This commit extends Spacemacs' line number interface to provide visual line
number support.
Revealed already bound navigation keys:
- `g` go to first candidate
- `G` go to last candidate
Moved `[q] quit` from bottom left to bottom right, to match other TSs.
Reduced spacing between keys and descriptions from two to one space.
Fixed the minibuffer showing: `nil`
when `select-enable-clipboard` is `nil` and the current files
path/dir/file/line/column/etc. is copied with the keys under
the prefix: `SPC f y`
New var: dotspacemacs-new-empty-buffer-major-mode
Set to a symbol naming a mode (e.g. 'text-mode) to apply that major mode to any
buffers newly created in Spacemacs by spacemacs/new-empty-buffer.
Fixes#12382.
This change will make buffers with the motion state
(e.g., spacemacs home buffer) be able to use the
evil-unimpaired navigation key bindings.
Note that the normal state will inherit the motion
state map anyway, so there's no need to set the
normal state map separately.
It is nicer when user can stay in the "home row" for basic operations like
zooming in and out
Font Scaling Transient State
`k` scale up
`j` scale down
Frame Transparency Transient State
`k` increase transparency
`j` decrease transparency
Zoom Frame Transient State
`k` zoom frame in
`j` zoom frame out
Added two additional Zoom Frame TS keys:
`m` max frame
`f` fullscreen
Delete the hook that commit 9fcf8c898d added
to persp-created-functions, and change spacemacs/ivy-spacemacs-layouts,
spacemacs/helm-perspectives, spacemacs/helm-persp-switch-project, and
spacemacs/ivy-persp-switch-project to achieve the intended goal of adding
the desired buffers after creating a new perspective.
Change spacemacs/helm-persp-switch-project and
spacemacs/ivy-persp-switch-project as follows: If the user selects a
project but then quits without selecting a file or buffer, the new
perspective is now immediately killed. Otherwise, if the perspective did
not already exist, any buffers that belong to the selected project are
added to the perspective.
Add the following actions to spacemacs/ivy-spacemacs-layouts and
spacemacs/helm-perspectives:
* Create a new perspective with the Spacemacs home buffer (default action).
* Create a new perspective with the buffers that belong to the current
buffer's project.
* Create a new perspective with the buffers that belong to the current
perspective (i.e., make a copy of the current perspective).
This commit resolves the problem reported in
9fcf8c898d (commitcomment-33343455).
This commit also fixes a problem with the default action for
spacemacs/ivy-spacemacs-layouts and spacemacs/helm-perspectives. According to
commit 7b931a9f5b, the default action is supposed
to display the home buffer if the action creates a new perspective, which was
determined by checking whether the perspective was missing from the list of
perspectives _before_ switching. However, commit
eb7ca651fe changed this logic so it was checking
whether the perspective was missing from the list of perspectives _after_
switching. This commit restores the correct logic.
* CHANGELOG.develop: Update.
* layers/+completion/ivy/funcs.el (spacemacs/ivy-spacemacs-layouts): Add
"Copy Current Layout" and "Create Project Layout" actions to the docstring.
Use spacemacs//create-persp-with-home-buffer for the default action.
* layers/+completion/ivy/packages.el (ivy/post-init-persp-mode): Add
actions for spacemacs//create-persp-with-current-project-buffers and
persp-copy.
* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs||switch-layout): New macro. Switch to the named perspective,
and initialize it using the provided forms if the perspective is new.
(spacemacs//create-persp-with-current-project-buffers): New function.
Create a new perspective with the current project's buffers.
(spacemacs||switch-project-persp): New macro. Switch to the named
perspective, and evaluate the provided forms with
projectile-after-switch-project-hook bound with a hook that adds the
current project's buffers to the perspective. If the user quits during the
evaluation of the forms, kill the perspective.
(spacemacs//create-persp-with-home-buffer): New function. Switch to the
named perspective, and go to the Spacemacs home buffer if the perspective
is new.
(spacemacs/helm-perspectives): Use spacemacs//create-persp-with-home-buffer
for the default action. Add actions for
spacemacs//create-persp-with-current-project-buffers and persp-copy.
(spacemacs//helm-persp-switch-project-action): New function. Switch to the
named perspective and call projectile-switch-project-by-name, using the new
spacemacs||switch-project-persp macro. Bind helm-quit-hook with a hook
that kills the new perspective if the user quits
projectile-switch-project-by-name.
(spacemacs/helm-persp-switch-project): Use
spacemacs//helm-persp-switch-project-action.
(spacemacs//ivy-persp-switch-project-action): New function. Switch to the
named perspective and call counsel-projectile-switch-project-action with a
hook to add the project's buffers to the new perspective.
(spacemacs/ivy-persp-switch-project): Delete advice for
counsel-projectile-switch-project-action. Use
spacemacs//ivy-persp-switch-project-action instead.
(spacemacs//add-project-buffers-to-persp): Deleted.
* layers/+spacemacs/spacemacs-layouts/packages.el
(spacemacs-layouts/init-persp-mode): Don't add a hook to
persp-created-functions.
global-hl-todo-mode uses function to activate only for modes that are in the
activate list but are not org-mode.
Reference: 24b9925b1b/hl-todo.el (L185-L188)
Adds a comment re `hl-todo-activate-in-modes` var
Two `SPC h SPC` toggles were missing their documentation:
- Nameless
- Minibuffer System Monitor (the symon package)
Now they match the other entries by showing:
- current state
- name (this was only shown before)
- documentation
- key binding (only minibuffer-system-monitor shows a key binding)
The nameless key binding `SPC m T n` only works in emacs-lisp-mode. It's key
binding might need to be described another way.
Defines a transient state for symbol-overlay, and bind it to ~SPC s o~ and ~SPC s O~.
Updates:
* update due to the signature change of `symbol-overlay-get-list`.
* align the docstring using `^^` and add `quit` button.
I have introduced a bug by merging
efa04de617.
This change removes the symptom with the
cost of again violating the 80 chars limit
in spacemacs-editing-visual's packages.el.
Fix issue #11282.
When a new perspective (layout) is created and we are in a Projectile
project, add all buffers belonging to that project to the perspective.
* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs//add-project-buffers-to-persp): Add new function.
* layers/+spacemacs/spacemacs-layouts/packages.el
(spacemacs-layouts/init-persp-mode): Add
spacemacs//add-project-buffers-to-persp to persp-created-functions.
Window sizing and layouts can be affected by a large transient state hint,
so having a option for minified hint is especially useful here.
Also reformats the full hint to place `golden ratio` under the "Resize" heading,
reducing overall height by one row.
Fixes helm not being loaded before calls to:
read-file-name and completing-read.
These are some commands that call either of those two functions:
spacemacs/rename-current-buffer-file (SPC f R)
In a Treemacs window:
treemacs-add-project-to-workspace (C-c C-p a)
In a Magit buffer:
magit-checkout (b b)
Thanks Miciah for a more elegant solution.
This commit also reverts:
Fix helm loading for layouts transient state #11705
because it's not needed anymore.
And the previously commented out transient hook minibuffer-setup-hook (it
doesn't seem to ever have been used) is removed because:
- It loads helm after a command is called that uses helm (instead of before)
- (spacemacs|hide-lighter helm-mode) has previously been moved to the
helm/init-helm :config section.
Moved:
- ("ai" "irc") to both the `erc` and `rcirc` layers. They don't have to be
renamed until the layers are loaded.
- ("ay" "ipython notebook") to the `ipython-notebook` layer.
- ("p$" "projects/shell")
("'" "open shell")
("as" "shells")
to the `shell` layer.
- The commands with keybindings from spacemacs-bootstrap/packages.el to
spacemacs-defaults/keybindings.el.
Removed:
- ("gd" "diff") it seems to be an old group name, there's no `SPC g d` group at
the moment.
- ("Re" "elisp") and ("Rp" "pcre") because they have moved to:
("xr" "regular expressions")
("xre" "elisp")
("xrp" "pcre")
- ("xm" "move") seems to be an old move text group, the current keybindings are
`SPC x J` and `SPC x K` which opens the Move Text Transient State.
- ("b" "persp-buffers") because `SPC b` is also renamed as ("b" "buffers") which
is more general and not persp-mode specific.
problems:
the delete file prompt doesn't show which file it's about to delete,
and when the deletion request is canceled, then the question remains in the
minibuffer (the text disappears when an action updates the minibuffer, like
moving the cursor, but it might be confusing to still be seeing the question
after it's been answered)
solution:
show the file name in the delete file prompt, and show a canceled message
By analogy with the "zz", "zb", "zt" vim / evil bindings, this adds an
additional key binding "z" for `recenter-top-bottom` to the following
transient states which navigate around the buffer in large jumps:
- auto-symbol-highlight
- error
- buffer
- vcs
- org-babel
This allows for repositioning of the buffer for visibility without having to
exit the transient state.
Minor updates are also made to documentation of other transient states.
1. Fix `short-name` for directories. Previously it was empty string.
2. Remove redundant check for existing buffer:
1. `(get-buffer new-name)` always return `nil`, because `new-name` is a path
to file, not a file name.
2. `(find-file new-name)` handles this situation.
3. `dired-rename-file` handles this situation as well.
3. Use `dired-rename-file` to do the dirty stuff.
1. Renames files and directories.
2. All associated buffers are updated. If you rename a directory, all buffers
that were visiting files from that directory now visit files from new
directory.
4. Properly handle recentf list update for directories - all files from the
renamed directory are removed from recentf list and the same files but from
new directory are added back.
problem:
`'face 'minibuffer-prompt` and `new-name` are shown with an orange color,
and `describe-char` shows that they have the face: `font-lock-warning-face`
solution:
adding a newline before them removes the orange warning color
Before this commit, Spacemacs assigned an anonymous function to the
compilation-finish-function variable. This variable was deprecated
in Emacs 22.1 and removed in Emacs 27.1 in favor of the
compilation-finish-functions hook. Consequently, the assignment has
no practical effect in Emacs 27.1.
Although we could add the Spacemacs function to the new
compilation-finish-functions hook, the function serves little purpose; it
prints a generic message when compilation succeeds:
compilation ok.
and it prints the key binding for spacemacs/next-error when compilation
fails:
There were errors. Use SPC e n to visit.
However Emacs already prints messages to indicate success or failure,
respectively:
Compilation finished
or (for example)
Compilation exited abnormally with code 1
Because the Spacemacs function prints its "There were errors" message
immediately after Emacs prints its "Compilation exited abnormally" message,
the latter was obscured. Because the exit code in Emacs's message could be
useful and the added value of the Spacemacs function's message is minimal,
we can simply delete the Spacemacs function.
* layers/+spacemacs/spacemacs-defaults/funcs.el
(compilation-finish-function): Delete the assignment and anonymous
function.
The `SPC f a` keybinding was already used by the `fasd` layer so a
workaround had to be found for the newly introduced one.
Refs: c2e377c902
Refs: #11224
Thanks @agzam for pointing it out and investigating potential solutions.
Fix issue #11207.
Only try to disable eyebrowse's advice on rename-buffer if we can find that
advice. If eyebrowse is older than version 0.7.6 (2017-11-22), the advice
will not exist, and attempting to delete it will cause an error:
ad-disable-advice: rename-buffer is not advised
* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs//activate-persp-mode): Only disable the
eyebrowse-fixup-window-configs advice for rename-buffer if the advice
exists.