小编典典

在终端命令行上移动光标的最快方法?

all

在终端中给定的很长的命令行上移动的最佳方式是什么?

假设我使用箭头键或Ctrl-R来获取这个长命令行:

./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

现在我需要移动(从行首或行尾开始)光标--option25以修改那里的内容。

到达那里最快的方法是什么?我通常做的是Ctrl-A从头开始​​,然后反复Alt-F逐字前进(或Ctrl-E走到尽头,然后Alt-B然后倒退)。但是排长队需要太多时间。必须有一种方法可以搜索并直接跳转到我需要修改的部分,例如option25


阅读 71

收藏
2022-07-28

共1个答案

小编典典

由于这还没有关闭,这里有更多的选择。

  • 使用Ctrl+x后跟Ctrl+在由ore指定的编辑器中打开当前行或(按该顺序尝试)。$FCEDIT``$EDITOR``emacs
  • 如果您之前运行过该命令,请点击Ctrl+r进行反向历史搜索并输入option25(在本例中)。将显示该行。此时点击Tab开始编辑。
  • 使用带有s///修饰符的历史扩展。例如!-2:s/--option25/--newoption/,将重新运行倒数第二个命令,但替换 option25。要修改最后一个./cmd命令,请使用以下!string语法:!./cmd:s/--option25/--newoption/
    可以使用任何分隔符代替 / 在替换中。

  • 如果编辑上一行,您可以使用快速替换:^--option25^--newoption

  • 字符搜索。Pax 提到了这一点,可以在常规 emacs 模式下使用Ctrl+]进行前向搜索,而Ctrl+ Alt+]用于后向搜索。

我推荐第二种选择。Ctrl+r非常方便快捷,无需与编辑器混为一谈,并且您可以在命令运行之前看到结果(与历史扩展不同)。

2022-07-28