在终端命令行上移动光标的最快方法?
在终端的特定命令行中移动的最佳方式是什么?
说我使用箭头键或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
?
由于这还没有关闭,这里有几个选项。
$FCEDIT
或$EDITOR
或emacs
指定的编辑器中的当前行( $FCEDIT
顺序尝试)。 option25
(在本例中)。 该行将显示。 点击Tab在这一点开始编辑。 s///
修饰符进行历史扩展。 例如!-2:s/--option25/--newoption/
将重新运行倒数第二个命令,但替换选项25。 要修改最后一个./cmd
命令,请使用!string
语法: !./cmd:s/--option25/--newoption/
可以使用任何分隔符代替替换中的/。
^--option25^--newoption
我建议第二个选项。 Ctrl + r非常方便和快速,不会与编辑混淆,并且可以在命令运行之前看到结果(与历史扩展不同)。
清楚的是,你不需要一个“在终端命令行上快速移动光标”。 你真正想要的是在shell程序中通过命令行导航的快速方法。
例如,Bash是非常常见的外壳。 它使用Readline库来实现命令行输入。 可以这么说,知道Readline绑定非常方便,因为它不仅用在bash中。 例如,gdb也使用Readline来处理输入。
在Readline文档中,您可以找到所有导航相关的绑定(以及更多):http://www.gnu.org/software/bash/manual/bash.html#Readline-Interaction
如果上面的链接出现故障,请复制粘贴短片:
基本必需品
运动
杀死和猛击
M是元键。 对于Max OS X Terminal,您可以在设置/键盘中启用“使用选项作为元键”。 对于Linux来说更加复杂。
更新
另请注意,Readline可以以两种模式运行:
要切换Bash以使用vi模式:
$ set -o vi
Personaly我更喜欢vi模式,因为我使用vim进行文本编辑。
奖金
在macOS终端应用程序(也可以在iTerm中),您可以通过Option-Click移动光标(光标将移动到点击的位置)。 这甚至可以在vim
。
按住Option键并点击你想要移动光标的位置,然后终端将光标移动到精确的位置。
链接地址: http://www.djcxy.com/p/49359.html上一篇: Fastest way(s) to move the cursor on a terminal command line?