Bash:交换当前命令行的最后两个参数

Bash:交换当前命令行的最后两个参数,bash,command-line,readline,Bash,Command Line,Readline,我刚看到一个提示,但我不能让它完全发挥作用 下面是它的结果: 键入echo abc def,然后按enter键 输入,echo abc def将变为echo def abc 然而,我无法使上述技巧完全起作用。也就是说,echo/long/path/to/dir\u a/very/long/path/to/dir\u b从未正确交换过——相反,我得到了echo/long/path/to/dir\u a/very/long/path/to/b\u dir。提示下面的注释也会得到类似的结果 有人知

我刚看到一个提示,但我不能让它完全发挥作用

下面是它的结果:

  • 键入echo abc def,然后按enter键
  • 输入
    echo abc def
    将变为
    echo def abc
然而,我无法使上述技巧完全起作用。也就是说,
echo/long/path/to/dir\u a/very/long/path/to/dir\u b
从未正确交换过——相反,我得到了
echo/long/path/to/dir\u a/very/long/path/to/b\u dir
。提示下面的注释也会得到类似的结果


有人知道作者是怎么做的吗

Alt+t
正在将光标下的一个单词与上一个单词交换。因为“/”被视为单词分隔符,所以会出现奇怪的行为


尝试执行
Ctrl+e
Escape+t
Alt+t
将光标下的一个单词与上一个单词交换。因为“/”被视为单词分隔符,所以会出现奇怪的行为


尝试执行
Ctrl+e
Escape+t

Esc-t和Alt-t都为我做了相同的事情(正如您所期望的那样)。真正的解决方案是修改单词分隔符或尝试一种不同的方法,该方法对标记而不是“单词”进行操作。Esc-t和Alt-t都对我做了相同的事情(正如您所期望的)。真正的解决方案是修改单词分隔符,或者尝试一种不同的方法,该方法对令牌而不是“单词”进行操作。跨站点复制:@tripleee,请不要因为标题相同而将其标记为重复-看看那里的解决方案。我同意您的评论“真正的解决方案是修改单词分隔符”,但您引用的跨站点“重复”中没有该解决方案。ThanksI没有将此标记为副本,而且确实不能。我只是留下了一条评论。关于这一讨论,请参阅-看起来您无法更改分隔符cbut Bash 4以附加的readline命令的形式提供了一些帮助)。切题另请参阅跨站点复制:@tripleee,请不要因为标题相同而将其标记为重复-请查看那里的解决方案。我同意您的评论“真正的解决方案是修改单词分隔符”,但您引用的跨站点“重复”中没有该解决方案。ThanksI没有将此标记为副本,而且确实不能。我只是留下了一条评论。关于这一讨论,请参见-看起来您无法更改分隔符cbut Bash 4以附加的readline命令的形式提供了一些帮助)。另请参见