首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在终端命令行上移动光标的最快方法?

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

Stack Overflow用户
提问于 2018-03-23 07:58:45
回答 2查看 0关注 0票数 0

在终端的特定命令行中移动的最佳方式是什么?

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

代码语言:javascript
复制
./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

EN

回答 2

Stack Overflow用户

发布于 2018-03-23 16:04:23

由于这还没有结束,这里还有几个选项。

  • 使用Ctrl+x和Ctrl+e在编辑器中打开当前行$FCEDIT$EDITORemacs(按该顺序审讯)。
  • 如果您在前面运行该命令,请按Ctrl+r进行反向历史搜索,然后键入option25(在本个案中)。将显示这一行。点击Tab开始编辑。
  • s///改性剂。例如:!-2:s/--option25/--newoption/将重新运行第二次至最后一次命令,但替换选项25。修改最后一个./cmd命令,使用!string语法:!./cmd:s/--option25/--newoption/可以使用任何分隔符来代替/在替换中。
  • 如果编辑上一行,可以使用快速替换:^--option25^--newoption
  • 字符搜索。这是Pax提到的,可以在常规emacs模式下执行,Ctrl+用于前向搜索,Ctrl+Alt+用于反向搜索。

我建议第二种选择。Ctrl+r非常方便和快速,不会与编辑器打交道,而且在运行命令之前就会看到结果(与历史扩展不同)。

票数 0
EN

Stack Overflow用户

发布于 2018-03-23 17:19:06

清楚的是,你不需要一个“在终端命令行上快速移动光标”。你真正想要的是在shell程序中通过命令行导航的快速方法。

例如,Bash是非常常见的外壳。它使用Readline库来实现命令行输入。可以这么说,知道Readline绑定非常方便,因为它不仅用在bash中。例如,gdb也使用Readline来处理输入。

基本

  • Cb移回一个字符。
  • Cf前进一个字符。
  • [DEL]或[Backspace]删除光标左边的字符。
  • Cd删除光标下方的字符。
  • C-_或Cx Cu撤销上次的编辑命令。您可以一直撤回到空行。

运动

  • Ca移动到行的开头。
  • Ce移动到行的末尾。
  • Mf前进一个单词,其中一个单词由字母和数字组成。
  • Mb向后移动一个单词。
  • Cl清除屏幕,重新打印顶部的当前行。

  • Ck将当前光标位置的文本杀死到行尾。
  • Md从光标杀死到当前单词的结尾,或者如果在单词之间,则结束到下一个单词的结尾。单词边界与制造商使用的相同。
  • M- [DEL]从光标处杀死当前单词的开始,或者如果在单词之间,则杀死前一个单词的开始。字边界与Mb使用的边界相同。
  • Cw从光标杀死前一个空格。这与M-不同,因为单词边界不同。
  • Cy将最近被杀死的文本放回到光标处的缓冲区中。
  • 我旋转杀死环,并拔出新的顶部。如果先前的命令是Cy或My,则只能执行此操作。

M是元键。对于Max OS X Terminal,您可以在设置/键盘中启用“使用选项作为元键”。对于Linux来说更加复杂。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档