org-capture, when used on a target that doesn't exist, will invisibly
expand a file template, leaving a hang yasnippet active. After
org-capture initializes, the yasnippet will attempt to operate on
overlays that don't exist, throwing overlayp errors.
CDing into the project root can be accomplished with external tools, e.g.
cd $(git rev-parse --show-toplevel)
cd $(hg root)
cd $(npm root)
Any of which could be aliased. Also, +vterm/toggle and term/toggle
define the PROOT environment variable, so `cd $PROOT` will work too.
On the other hand, CDing to the current file/folder requires that the
shell be made aware of the file/directory of some Emacs state, which is
a little trickier to deal with, so I made that the default behavior for
+term/toggle, +vterm/toggle and +eshell/toggle.
Uses the most basic, uncustomized shell to a) prevent interference
caused by slow shell configs and b) speed up project text searches. This
comes at the cost of isolating these programs from envvars that the user
may have set in their shell configs in order to change
ag/rg/pt/git-grep/grep's behavior.
If this bothers you, change +ivy-file-search-shell to your shell (or
to the value of `shell-file-name`).
Possibly relevant to an issue mentioned in #1260
They are:
]m, [m
Jump to next/previous beginning of method/function.
]M, [M
Jump to next/previous end of method/function
]#, [#
Jump to next/previous preprocessor directive (only supports C-style
directives for now)
]*, [* (or ]\, [\)
Jump to next/previous comment
The fix for #1489 (in 13f5a762) gives the temp buffer (where formatting
is performed) a real buffer-file-name, which causes it to prompt to save
it when it is killed.
Adds these keys, inspired by tpope/vim-unimpaired:
[ SPC, ] SPC (or [o, ]o)
Add COUNT blank lines above/below the cursor
[f, ]f
Visit previous/next file in current folder, alphabetically
[u, ]u
Url encode/decode operators
[y, ]y
C-string-style escaping/unescaping operators (escapes quotes,
backslashes and control characters)
[x, ]x
XML entity encoding/decoding operators (only if :lang web is enabled)
[F, ]F
Focus previous/next frame (decided this is better than ]t/[t which is
being used by hl-todo-{next,previous})
We already had gp and ]b/[b (buffers).
We're not going to port ]e/[e because it is redundant with ddp/ddP or gx
(evil-exchange). I also think these keybinds are better suited to
{next,previous}-error.
multi-term performs a lot of hackery on Emacs' windows API, which causes
problems, particularly for persp-mode. To side-step it all we must
reinvent some of the wheel.
Fixes:
- Wrong-type-argument error when failing to display eshell buffer with
pop-to-buffer, because it was killed (when prefix arg is non-nil).
- Passes non-existent variable `buf` to +eshell-run-command.
The goal was to enable lsp (if +lsp is enabled), failing that it would
fall back on tide. This also adds lsp+tide support for tsx files opened
in web-mode.
- Replace +eshell|init-evil with an advice for
evil-collection-eshell-next-prompt-on-insert
- Update C-n/C-j and C-p/C-k keybinds to use
eshell-{next,previous}-matching-input-from-input, which behave much
like zsh's history-substring-search-{up,down}
- Move window navigation keybinds C-{h,j,k,l} to C-c {h,j,k,l} (more
tmux-esque).
The semantics of SPC o t and SPC o T (or SPC o e and SPC o E in eshell's
case) have been reversed.
The lowercase keybind toggles the popup (and the prefix arg forciby
recreates the popup), and the uppercase keybind switches to that
terminal in the current buffer (whose prefix arg will open the terminal
in default-directory, rather than the project root).
- +{term,vterm,eshell}/open have been replaced with +X/here commands and
are bound to SPC o T (and SPC o E in eshell's case).
- +{term,vterm,eshell}/popup* have been replaced with +x/toggle commands
and are bound to SPC o t (and SPC o e in eshell's case).
The "toggle" behavior will do as the name implies, except will select
the popup if it is visible but unfocused.