【问题标题】:Shortcut to jump to the previous white space in a bash command line在 bash 命令行中跳转到上一个空格的快捷方式
【发布时间】:2018-09-04 08:26:38
【问题描述】:

要跳转到命令行中的前一个单词,我使用 Alt + b。 但是,我的文件名很长,看起来像这样:

2018_09_03_abcdef_ghijkl_mnopqr_stuvwx_yz.txt

当我想更改这些文件的名称时,我使用命令mv 和允许我粘贴第一个单词/参数(文件的当前名称)的快捷方式**。这给了我以下命令:

$ mv 2018_09_03_abcdef_ghijkl_mnopqr_stuvwx_yz.txt 2018_09_03_abcdef_ghijkl_mnopqr_stuvwx_yz.txt

然后我想更改日期和/或文件名的第一个字母以获取例如最终命令行:

$ mv 2018_09_03_abcdef_ghijkl_mnopqr_stuvwx_yz.txt 2018_09_04_ABcd1234_ghijkl_mnopqr_stuvwx_yz.txt

要在文件名的开头进行更改,我必须多次键入快捷键 Alt + b,因为此快捷键将每个由下划线分隔的字母视为一个单词。

我希望能够直接跳转到名称的开头(不是行首)来修改它。针对空白区域的快捷方式将是理想的。

我一直没能找到这样的快捷方式,可以跳过下划线直接转到前面的空白处。

是否有人已经在 bash 中创建了允许您执行此操作的快捷方式?

实现这一点的唯一可能方法是从 emacs 模式切换到 vi 模式 (set -o vi) 并使用 vi 快捷方式: F + space ?

非常感谢您!

** 我发现在当前命令行中粘贴前一个单词并将其粘贴到同一当前命令行中的快捷方式使用 Alt + j 并且必须添加到'~/.inputrc'文件中(如下bind -f ~/.inputrc):

"\ej":"!#:$\e^"

【问题讨论】:

  • 如果之前出现的space 是您想要的,您应该能够使用^R 后跟space 向后搜索空间。重复^R 以进一步搜索。这实际上是一个历史搜索,但从当前行中的当前位置开始,因此也应该用于此目的。
  • 您在 StackOverflow 上发布您的问题,但这个问题与编程无关。也许你会在superuser.com获得更多的运气
  • 非常感谢 vdavid!好建议!我刚刚在这个网站上发布了我的问题。
  • Ondrej K.,这实际上效果很好!使用 ^R (Ctrl + r) 后跟 space 确实将光标重新定位到我正在寻找的空白处。这确实节省了我的时间!非常感谢!您的评论绝对是一个很好的答案!

标签: bash


【解决方案1】:

several shortcuts 来导航 bash 命令行。这是另一个list
假设光标位于行尾,它可以通过键入 Meta+7 Meta+b 跳转到03(白天部分) (2 次击键而不释放 Meta 键)。
现在,对于文件名更改,brace expansion 可用于获取类似这样的命令,该命令提供扩展的第二个参数。

mv 2018_09_{03_abc,04_ABC}def_ghijkl_mnopqr_stuvwx_yz.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2020-07-04
    • 2011-02-09
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多