要在命令行中跳转到上一个单词,我使用 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^"
有几个快捷方式可以导航 bash 命令行。这是另一个列表。
假设光标位于行尾,它可以通过键入 Meta+7Meta+b(2 次击键而不释放Meta键(跳转到03
(天部分(。
现在,对于文件名更改,可以使用大括号扩展来获取这样的命令,该命令提供扩展中的第二个参数。
mv 2018_09_{03_abc,04_ABC}def_ghijkl_mnopqr_stuvwx_yz.txt