this post was submitted on 12 Jun 2023
4 points (100.0% liked)

Linux

47344 readers
1409 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hello there :)

As far as I know (searched through the web), editing/navigating a multiline in bash is not possible and opening nano, pasting and editing is to much friction I want to get rid off.

Do you have any way to speed up the process?

example of multiline:

echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Thank you :)

all 16 comments
sorted by: hot top controversial new old
[–] [email protected] 7 points 1 year ago (2 children)

You can use C-x C-e in bash to open the current line in $EDITOR and edit it there. Much faster than copying and pasting :)

[–] INeedMana 1 points 1 year ago

Wow! I've never heard about this.

For zsh: not mine gist to enable it

[–] deepdive 1 points 1 year ago

Thank you :) Helps alot !!

[–] gartheom 5 points 1 year ago (1 children)

As soon as a bash command gets to multiple lines, i save it as a bash script and then edit it in a text editor.

[–] deepdive 1 points 1 year ago

Thank you for your response :) But that's actually what I don't want to do...

It’s not about looking pretty, I like to navigate freely like CTRL-E, CTRL-A, ALT-B, ALT-F… speeds up the process and is frictionless (like your link suggests it :P). Sometimes I copy/past an already written command in the CLI with multilines and not being able to navigate thourgh them is frustrating !

[–] taaz 5 points 1 year ago (1 children)
[–] deepdive 1 points 1 year ago

Hey :) Thank you !! That's not exactly what I hoped for but it does the trick very smoothly !!!!

[–] 3nt3r 2 points 1 year ago (1 children)

Personally if its just a bash command then I dont bother with formatting and just do one-liners. If I want it to look pretty then I’ll put it in a script. If I need to edit something you can use shortcuts like these to jump around the command line to edit whatever you need

[–] deepdive 1 points 1 year ago

Hey, thank you for your response :)

It's not about looking pretty, I like to navigate freely like CTRL-E, CTRL-A, ALT-B, ALT-F... speeds up the process and is frictionless (like your link suggests it :P). Sometimes I copy/past an already written command in the CLI with multilines and not being able to navigate thourgh them is frustrating !

[–] [email protected] 2 points 1 year ago (1 children)

You can use the emacs shortcuts to navigate quickly, jump forward or backwards over words or to the start or end of a line.

[–] deepdive 1 points 1 year ago (1 children)

Hey thank you :) I didn't knew these shortcuts where called emacs ! As @taaz said Ctrl+x Ctrl-e is probably the best I will get.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)
  • Ctrl-A (jump to beginning of line)
  • Ctrl-E (jump to end of line)
  • Ctrl-W (delete word)
  • Alt-F (jump one word forward)
  • Alt-B (jump one word back)

These get me most of the way around.

It also depends on your terminal emulator. For instance on my Mac I've mapped the above to the typical keybinds (alt-left, alt-right, ctrl-backspace)

[–] deepdive 1 points 1 year ago* (last edited 1 year ago)

Thank you :) My question was maybe a bit confusing (not native :( ) and yes I know those EMACs shortcuts to navigate around :). It was relate to how to navigate a multiline in a copy/pasted command in the shell. The solution is (even if it wasn't what I expected) to Ctrl-x Ctrl-e, this opens an editor with my copied command. This is one more step, but it's elgant and takes away the fritction from opening nano myself !

Thank you for your contribution !