Commit graph

89 commits

Author SHA1 Message Date
Steven Allen 36230346ea [eshell] Skip prompt text on insert
When entering insert mode, don't start editing in the middle of the prompt text.

That is, given:

~/foo/bar> some command
  ^            ^       ^
  A            B       C

Cursor A will jump to position C but cursor B won't.

Edit by duianto
This also stops the cursor from jumping to the end of the last line,
when entering insert state, from all but the last line in a multi line.

Example:
~/foo/bar>(+
1{cursor in normal state on the 1}
2)

Entering insert state: i

Before:
~/foo/bar>(+
1
2){cursor in insert state after the close parenthesis}

After:
~/foo/bar>(+
{cursor in insert state before the 1}1
2)
2020-02-14 13:09:29 +01:00
Nikita Leshenko 0417379a2f
shell: Wrap terminal-here in use-package
Introduced in PR #11949, terminal-here wasn't wrapped in `use-package'. This
made it impossible to use `spacemacs|use-package-add-hook' to customize it.
2019-12-20 10:09:27 +01:00
Nikita Leshenko aaa11a6823 Convert case' to cl-case' to fix cl-lib related errors
Broken since PR #13059
2019-12-18 12:08:05 +01:00
Kalle Lindqvist 1095d3b7d3
shell: enable prompt autojump when using smart-eshell 2019-12-15 22:01:41 +00:00
emacspace 76245081d6 documentation formatting: Mon Dec 9 21:44:48 UTC 2019 2019-12-09 23:52:24 +02:00
Uros Perisic 628fe9adba
Add support to start external terminal emulators in context.
Integrated terminal emulators/integrated shells get the job done for
quick-and-dirty shell commands, but a lot of people take great care to tweak
their terminal workflow exactly to their liking. This makes it possible to
switch to that workflow seamlessly, by opening their terminal emulator of
choosing in the current directory or at the project root, and even supports
working over `ssh` using `tramp`.
2019-12-06 22:21:15 +01:00
emacspace c91779aff4 documentation formatting: Fri Nov 8 16:03:53 UTC 2019 2019-11-08 16:08:22 +00:00
Ag Ibragimov 08fdb02d7d [shell] Add vterm key bindings
- ~M-n~     =vterm-send-down= (next command)
- ~M-p~     =vterm-send-up=   (previous command)
- ~M-y~     =vterm-yank-pop=  (previous paste)
- ~M-/~     =vterm-send-tab=  (hippie expand)
Evil insert state:
- ~C-y~     =vterm-yank=      (paste)
Evil normal state:
- ~p~       =vterm-yank=      (paste)
- ~u~       =vterm-undo=

vterm: more keys
2019-11-06 12:01:31 +01:00
br3athein e528c6b038 shell: Set initial shell state better 2019-10-19 22:58:22 +02:00
smile13241324 bbe3e5bde1 [shell] Revise documentation 2019-10-19 22:34:49 +02:00
br3athein 72844d2ae9 shell: Tell vterm to respect shell-default-term-shell setting
Effectively, this forces `vterm` to spawn a shell set in a
`shell-default-term-shell` variable i/o default "/bin/bash" - just like
other shells from `shell-pop` do.
2019-10-19 22:21:05 +02:00
Miciah Masters 552fd5953c Update references to macOS
Apple renamed "Mac OS X" to "OS X" in 2012 and then to "macOS" in 2016.
Update references to use the current name.
2019-10-13 12:04:40 +02:00
Miciah Masters 7db8815ee5 Simplify loading logic for eshell-z
* layers/+tools/shell/packages.el (shell/init-eshell-z): Replace use of
with-eval-after-load by using use-package's :after keyword to load eshell-z
when eshell is loaded.
2019-10-13 11:15:46 +02:00
syl20bnr fdd38eec9b [shell] Add instruction to install cmake on MacOS 2019-09-30 02:29:50 -04:00
deb0ch 2d232232d0 [shell] regroup redundant evil-define-key 2019-09-16 17:41:15 +03:00
deb0ch 2f8f21b3b1 [shell] enter insert mode when entering a terminal 2019-09-16 17:41:15 +03:00
deb0ch 3643bc7b6d [shell] add support for vterm
Support for https://github.com/akermu/emacs-libvterm
2019-09-16 17:40:32 +03:00
deb0ch 29e2fa11d9 [shell] inhibit global-centered-cursor-mode in terminals 2019-09-16 17:38:35 +03:00
Benjamin Hipple cea98bcd54 shell: allow evil normal-mode movement in terminal buffer
As mentioned in https://github.com/syl20bnr/spacemacs/issues/10779#issuecomment-427712967,
emacs 26.1 changed the default behavior for term-char-mode to prevent cursor
movement. This change restores consistent behavior on all versions of emacs and
allows normal-mode motions to work again.

Note that the buffer is still read-only while in normal-mode, so operators that
change the line (such as `C`, `D`, `S`) still don't work.

Fixes #10956
Fixes #10779
2019-08-05 18:17:36 +02:00
Sheng Yang 0a202138b9 Allow mouse pasting in term based shells 2019-06-21 19:22:25 +02:00
Taegil Bae 95940a64ee Add a layer variable to close window with terminal
Currently, when a terminal is ended, its window is also closed. This behavior is
not satisfying to all. Thus a layer variable is added to give an option whether
to close window with terminal.
2019-05-27 22:31:09 +02:00
emacspace c7c348a676 documentation formatting: Sun May 26 20:58:52 UTC 2019 2019-05-27 01:23:35 +03:00
Anton-Latukha f6660f82d4
Switch to the new layers generator 2019-05-15 21:08:21 +03:00
bb2020 e22cfadf1f [shell] Add Eshell Ivy completion bindings
M-l calls spacemacs/ivy-eshell-history
TAB calls spacemacs/pcomplete-std-complete
2019-05-12 18:47:27 +02:00
bb2020 9044aedf01 Enable helm-esh-pcomplete for eshell completion 2019-05-10 12:12:12 +02:00
bb2020 697d3b88ac [shell] Move eshell-z-freq-dir-hash-table-file-name into cache dir 2019-05-08 19:49:24 +02:00
JAremko 5d02b1c4bb Add more tags 2019-05-03 03:44:19 +03:00
Emil Petersen c68fde7beb Apply conventions to multi-term keybinds 2019-04-14 23:05:01 +02:00
duianto 3de7081950 Cleanup which-key names
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.
2019-02-18 14:35:00 -05:00
emacspace 45276bd96f documentation formatting: Wed Dec 5 03:03:03 UTC 2018 2018-12-04 22:06:14 -05:00
cipharius 7c3aa2a43c Fix broken leader key binding for inferior shell 2018-10-31 22:47:49 +00:00
emacspace 901f35849a documentation fixes: Tue Oct 23 14:18:21 UTC 2018 2018-10-23 23:38:16 +03:00
emacspace cca6bc15a8 documentation fixes:Sat Oct 13 23:09:18 UTC 2018 2018-10-13 23:09:18 +00:00
Boris Buliga 4929f62a70
add instructions for setting shell for multi-term
Fixes #5818
2018-10-13 19:23:14 +03:00
Daniel Rivas Perez b860fd760c Fixed shell popup broken on macOS
Shell popup was broken, removing the '.' fixed it.
2018-10-13 11:05:27 +01:00
cipharius 79fe37c8b2
Wrap 'shell' command to start in current buffer 2018-10-12 18:29:04 +03:00
JAremko cd39f80c24 Reformat documentation 2018-10-11 00:13:43 +03:00
Alexander Wingård 07a7776b6f Override read-only when capturing clear in shell
When shell layer intercepts the clear commands and tries to replace it with
erase-buffer, this fails with 'Text is read-only'.
Work around this by using inhibit-read-only.
2018-10-09 00:16:20 +03:00
mjkramer b8ca9f80d4 Add multi-term' to shell-default-shell' doc 2018-09-10 22:28:37 +01:00
Miciah Masters bff8403446 shell: Adjust popup shell width only for left/right
Fix issue #11037: Do not adjust the width of a popup shell's window unless its
position is left or right.

* layers/+tools/shell/funcs.el: Check that shell-pop-window-position is 'left
or 'right before adjusting the window's width.
2018-07-24 00:05:53 +03:00
Thanh 76cf97e6a8 resize-shell-to-desired-width check for shell buffer before changing size 2018-06-15 23:52:33 -04:00
Miciah Masters e0b751bee3 Avoid non-idempotent use of push in init code
Replace push with add-to-list in layer init functions and related code.

Modify spacemacs|add-toggle to check for and update an existing toggle in
spacemacs-toggles and only create a new toggle if none already existed.

Replace a conditional push onto erc-packages with use of :toggle.

When initializing which-key, set which-key-replacement-alist to its default
or customized setting before adding all the Spacemacs replacements.  We
want to keep the stock replacements but avoid adding duplicates of the
Spacemacs replacements.

Replace the emacs-lisp-mode-hook lambda with a named function to avoid
adding duplicate hooks (which can add duplicate definitions of the
evil-surround pair).
2018-06-05 22:17:13 -04:00
Codruț Constantin Gușoi b68bd33a16 Fixes shell readme format 2018-05-28 00:50:16 +03:00
David Balatero 4ad2f719fa Add shell-default-width configuration option for left/right side 2018-05-27 23:58:03 +03:00
Miciah Dashiel Butler Masters c18317ad05 shell: Restore correct value for company-idle-delay (#10728)
* shell: Restore correct value for company-idle-delay

In spacemacs//toggle-shell-auto-completion-based-on-path, re-enable
automatic suggestions by restoring company-idle-delay to the value of
auto-completion-idle-delay rather than to a hardcoded value.

* Document how to disable automatic suggestions

Document how to disable automatic suggestions, and mention that the Tab key
will still perform completion even with automatic suggestions disabled.
2018-05-23 00:27:08 -04:00
syl20bnr ebe4c60264 Revert "Defer packages by default using use-package-always-defer"
This reverts commit 29c78ce841 and all other fixes
that have been made afterwards.

The motivation is that use-package is seen by many as a replacement for
`require`. Is use-package always defer the loading of packages then is breaks
this use case, this does not respect POLA so even if it was making Spacemacs
loading faster (up to 3s faster on some startup on my machine) we just cannot
use it, it would be irresponsible. Spacemacs should be easy to use, loading
performance will come with time but it is not a priority.
2018-03-03 23:40:10 -05:00
syl20bnr 29c78ce841 Defer packages by default using use-package-always-defer
Warning now `:defer t` is implied, to force a package to load `:demand t` is
now necessary.
2018-02-27 23:32:52 -05:00
Paul 92428f3a47 shell: move eshell key bindings definition into a hook function
Problem
---

`C-j` and `C-k` key bindings don't work in eshell buffers except the first one.

Solution
---

`eshell-mode-map` is buffer-local, so key bindings have to be defined in a hook
function.
2018-02-24 19:49:39 -05:00
syl20bnr 3cb9fea0ff Reset useful and useless buffers to empty lists
I feel like we should start from scratch on this one and carefully choose the
defaults.

Also this settings is a very personal setting so if we make some buffers
useless we must have a consensus on it. Marking all special buffers starting
with `*` as useless is too aggressive and make Spacemacs less POLA since two
consecutive press on SPC TAB may not revert to the original buffer.
2018-01-10 10:59:15 -05:00
syl20bnr 326965d4ce Happy New Year 2018! 2018-01-04 02:00:25 -05:00