This keeps the keybinding specific to the visual-line minor mode, and
fixes#5418. Reverting the bindings on the :off toggle is no longer
necessary as well, turning off visual-line-mode will handle it.
While seemingly equivalent, this binding change can cause brittle
behavior in at least one case (used in conjunction with
multiple-cursors). Such a highly niche customization would probably be
better in a personal config, unless a case can be made that all
spacemacs users would benefit.
It's not possible to get full backtraces in these instances when an
error is signaled, and I think we should generate full backtraces when
debug-on-error is enabled as a general rule.
I had to make this change at one place to track down the root of problem
2 in #5200.
1. The register name should be a character not a symbol.
2. Combine toggle-maximize-centered-buffer and bzg-big-fringe-mode to
make new minor mode that combines the two effects.
3. Fix problem where the mode could only be enabled if there was more
than one window, which makes no sense.
4. Use window-configuration-to-register function
Fixes#3450
For some reason, the scroll transient state was trying to reinvent
scrolling halfway up and down a page when these are well supported
operations in evil.
Introduce hjkl-completion-navigation-functions to hold the functions to
disable and enable hjkl navigation for ivy and/or helm. The hook is run
with args to indicate whether to enable or disable.
packages-backup.el in the spacemacs layer was kept around while
factoring the layer into smaller components. Since it's out of date now,
the backup file should be removed.
It's a little pointless taking up space in the modeline to indicate that
the LR minor mode is active when line numbers are themselves visible
and it is this clear to everyone that they are active.
Also:
- switch spacemacs layouts to the same.
- Add “wD” for ace-delete-window
- switch window dedication toggle to “wt”
- all documentation has been updated to reflect these changes
Closes#5031
Make use of new evil variable evil-disable-insert-state-bindings. This
is better because we are not copying evil code to get hybrid state to
work. We should not need to worry about tracking upstream evil changes
with this version of hybrid mode.
The only effect I can think of with this change is that there is no
longer a distinct hybrid-map, since there is no longer a distinct hybrid
state. This means that, for example, (evil-define-key 'hybrid ...)
will throw an error. You can either use (evil-define-key 'insert ...) or
the preferred (global-set-key ...). The latter is preferred because the
purpose of hybrid mode is to not interfere with Emacs bindings in insert
state.
Use post-init-evil function to load
It's a bit safer than with-eval-after-load, in case evil gets loaded
before its init function is called.
Add entry and exit hooks
Add temporary wrapper to evil-define-key
This is so that calls like (evil-define-key 'hybrid ...) do not fail
after switching over. Instead issue a warning for all such instances and
bind using define-key instead.
Also define evil-hybrid-state-map and make it the parent of
evil-insert-state-map this will prevent calls like (define-key
evil-hybrid-state-map ...) from failing.
These are both temporary and are only intended to smooth the transition
to the new version of hybrid-mode.
- Don't explicitly list commands (they are autoloaded)
- Move xgl binding from keybindings.el
- Don't explicitly require the default-ui feature (not necessary)
- Set variables in init instead of config (easier to change for users)
Keep the point the same for evil-unimpaired/insert-space-above and
evil-unimpaired/insert-space-below.
Old Behavior
A newline<POINT>
\n
===== (evil-unimpaired/insert-space-below)
<POINT>A newline
\n
\n
New behavior
A newline<POINT>
\n
===== (evil-unimpaired/insert-space-below)
A newline<POINT>
\n
\n
With the introduction of `rspec` support in version 0.105.0
tests run with rspec launch in their own `rspec-compilation`
which is not managed in `spacemacs-base/init-popwin` causing
those compilations to open a new buffer and take over an exisiting
window.
It is preferable to have the test compilation open in a popwin
that does not disrupt the current state of a workspace layout and
takes advantage of the full width of the current editor view
so it's easier to read. Popwin is also nice because it is easier
to dismiss with a simple `C-g` or `SPC w p p`.
This commit restores the spacemacs/avy-open-url SPC x o keybinding,
and also adds spacemacs/avy-goto-url to the package :commands to fix the
missing function definition on the SPC j U keybinding.
A recent change in evil-jumper makes this unnecessary. The keys are now
bound as remaps, which means they have the same priority as the location
of the evil-jump-forward and evil-jump-backward commands. This is
exactly what this hack was trying to accomplish, so it's no longer
necessary.
Unless there is a valid reason why these shouldn't be included I think
we should keep them. after all we can yank with `v y` right?
squash! Add documentation
Key bindings should not be choosen given a package name, some helm
key bindings are under `SPC h` which are corrected the following way:
SPC h l for helm-resume to SPC r l (resume last completion)
SPC s l for last-search to SPC r s (resume search) (SPC s l is still
available)
SPC h L for helm-locate-library to SPC s L
Resolve#4592
Enable a hook in +distribution/spacemacs layer to enable bracketed-paste
in tty setups. This allows a better paste functionality in tty.
squash! Sort packages.
Bind it to `SPC h d d` as it's a way to describe a lot of elements:
- commands
- functions
- classes
- generic functions
- variables
- faces
- helm-attributes
Is also bound on `SPC F1` and will also stay there.
`SPC j j` is now for avy-goto-char (SPC SPC in 0.105)
`SPC j J` is for avy-goto-char-2
`SPC j s` is for splitting strings or sexps
`SPC j S` is for splitting strings of sexps, insert new line and indent
`SPC j n` is to split line at point, insert new line and indent
ivy-use-virtual-buffers was triggering recentf-mode to be called before
the recentf init function was called leading to problems with where the
recentf file was placed.
Background: `C-i` and `TAB` are the same keycode for historic reasons.
With the current settings, evil [1] and evil-jumper [2] associate
`jump-forward` to `C-i` (==`TAB`), what overrides bindings set to
`TAB` (==`C-i`) in terminal mode, like `orc-cycle`. To fix this,
this commit:
- Set `evil-want-C-i-jump` to `nil`, to prevent `evil` and `evil-jumper`
to use the `C-i` (==`TAB`) keycode.
- Remove the spacemacs' code that bind `jump-forward` to `TAB`(==`C-i`)
The current spacemacs code already rebind `jump-forward` to the GUI-only
`<C-i>` keycode.
[1] 082bd65ccc/evil-maps.el (evil-maps.el-323)
[2] efaa841ca4/evil-jumper.el (L241)Fix#4505Fix#4487
Use mnemonic j for jumping commands. Although some of these commands
exist in other places, they are duplicated here when they don't
conflict.
Add:
1. jb for bookmark-jump
2. jc for avy char jump
3. jd for dired-jump
4. jD for dired-jump-other-window
5. jf for find-function-at-point
6. ji for spacemacs/jump-in-buffer (imenu)
7. jI for helm imenu in all buffers
8. jl for avy go to line
9. ju for avy-pop-mark (u for "undo")
10. jU for spacmacs/avy-goto-url
11. jv for find-variable-at-point
12. jw for avy go to word or subword
Move:
1. jh to j0 (push mark and go to beginning of line)
1. jl to j$ (push mark and go to end of line)
Having them in a minor mode map gives them precedence over other minor
modes. It's better to put the bindings in the same place as the original
evil jump commands which is the global motion map.
This make `SPC h SPC` as default binding for accessing `helm-spacemacs`,
by either A) changing all the documentation; and B) adding a deprecation
message for `SPC f e h`.
The deprecation use a warning, because if a message is used it's hidden
directly when the helm buffer is shown, making it nearly unnoticeable
for the user.
Given the intended behavior of having evil-lisp-state-map available
under SPC k, it is simplest to bind it directly to
spacemacs-default-map.
This requires no changes to evil-lisp-state itself.
Fixes#4151
evil-set-initial-state is safer than manually adding and deleting from
the lists, because it knows about all available states and ensures that
the mode only shows up in one list. If it is in multiple list the
initial state depends on which is checked first, which we don't want.