What is the best way to move around on a given very long command line in the terminal?
Say I used the arrow key or Ctrl–R to get this long command line:
./cmd --option1 --option2 --option3 --option4 --option5 --option6 --option7 --option8 --option9 --option10 --option11 --option12 --option13 --option14 --option15 --option16 --option17 --option18 --option19 --option20 --option21 --option22 --option23 --option24 --option25 --option26 --option27 --option28 --option29 --option30 --option31 --option32 --option33 --option34 --option35 --option36 --option37 --option38 --option39 --option40 --option41 --option42 --option43 --option44 --option45 --option46 --option47 --option48 --option49 --option50
Now I need to move (starting from the beginning or the end of the line) the cursor to --option25 to modify something there.
What is the fastest way to get there? What I usually do is Ctrl–A to get to the beginning and then repeatedly Alt–F to move forward, word by word (or Ctrl–E to go the end and Alt–B to then go backward). But on a long line that takes too much time. There must be a way to search and jump directly to the part I need to modify, e.g. option25?
Since this hasn’t been closed yet, here are a few more options.
$FCEDITor$EDITORoremacs(tried in that order).option25(in this case). The line will be displayed. Hit Tab to start editing at this point.s///modifier. E.g.!-2:s/--option25/--newoption/would rerun the second-to-last command, but replace option25. To modify the last./cmdcommand, use the!stringsyntax:!./cmd:s/--option25/--newoption/Any delimiter may be used in place of / in the substitution.
^--option25^--newoptionI recommend the second option. Ctrl+r is really handy and fast, no mucking about with editors, and you see the results before the command is run (unlike the history expansions).