antekone is a user on You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.
antekone @antekone

If you're using bash or zsh and you don't know the ^X^E shortcut, learn it now.

First, ensure you have a valid `EDITOR` environment variable set to your favourite editor (like vim or emacs).

Second, enter some command, but don't hit enter.

Third, use Ctrl+X Ctrl+E and learn that you can use your editor to modify the command before running it in the shell.

This is pretty helpful if you're trying to edit a long command line.

· Web · 71 · 101

@antekone Do you know what the binding is if you're using vi input mode?

I don't need it as frequently because of vi mode but it would still be nice from time to time.

@minego @tomasino

Try setting this first:

bindkey -M vicmd v edit-command-line

They <esc>v should work.

you don't need it if you use #acme :bloballpraisetoplan9:

but in al seriousness, Acme makes this kind of thing super easy

@antekone what's even better is that you can use it with _any_ shell:

- python repl
- chrony's console
- sh/bash/rc/fish/zsh/whatever else

it's really heccin cool

@antekone if you use vi mode in bash, hit esc-v for the same function

@antekone Super awesome. I can't tell you how many times this would have come in handy.

@antekone well, I am using vi mode in korn shell, but it is a helpful information for machines other than mine 👍

Is this really helpful to you? As in, do you actually run command lines long enough so that standard shortcuts aren't comfortable enough?

@danipozo Not every day. But sometimes it is useful.

Last time it was helpful to me was when trying to figure out a problem with compilation of some software. I was copying/pasting long command lines that were autogenerated by CMake (several lines long).

In order to find the problem I needed to modify those command lines and see if my modification will help to get the compilation working. So I've used ^X^E and vim's substitution command (:%s///) to perform the modification. :party_parrot:

@antekone Didn't know about that and found a tip to use vim-style bindings instead, thank you ❤

@antekone oh man, I've been using linux for seven years, and as my main distro for 4 years, and I had no idea. This is delightful.

@antekone EDITOR should be set to ed, the standard editor.

For other programs there is VISUAL environment variable.

@ed1conf @ed1

@antekone Also note that, if the $EDITOR exits with a non-zero exit status, the shell won't run the command. In vim, that's `:cq`. In ed(`) (without GNU's "--loose-exit-status" parameter), any editing error will produce a non-zero exit status, meaning the command won't run. Edit with care. For all editors, if you want to abort, you can delete the entire command, save, and quit.

edit Show more

@antekone nice! you can also `set -o vi` to enable vi-like keybindings right in the shell prompt