这是我经常遇到的情况:我正在 shell 中创建一个长命令(这里是fish,但也可以是bash或其他形式),并带有一堆标志和参数,所以我在命令中来回切换。最后,我的光标刚好位于命令中间的标志之后。我想我已经完成了,所以我按了回车键来执行命令。但是命令没有执行,因为我犯了一些错误。因此,我点击向上箭头键,使前一个命令返回到提示符中以修复它。
但是shell并没有恢复我的光标位置,它把我的光标移到了末尾,这是不实际的,因为我需要修改的参数位于命令的中间,事实上,在我按回车键之前,我的光标所在的位置。
我正在寻找一种方法,让我的shell可以根据需要恢复光标位置,例如当我按下某个组合键时,这将节省我将光标导航回正确位置的时间。
我目前使用的是fish shell,但我愿意使用任何其他具有此功能的shell(bash、zsh)。
如何在shell中快速将光标恢复到命令执行前的位置?
谢谢你的建议。
1条答案
按热度按时间efzxgjgh1#
在fish-shell中实现这一点的一种方法是添加一对函数,一个保存光标位置并执行命令,另一个恢复光标位置:
现在我们将
\r
(enter)绑定到第一个函数,将control-R绑定到第二个函数:现在点击向上箭头键后,Ctrl + R将光标恢复到保存的位置。