在bash中,有时我会有很长的命令,我需要编辑一些单词。现在我使用结束/主页来移动命令的结束/开始,但如果我必须移动一行中的 x 字符呢?
我需要像 xb / xw of VI 这样的东西,但我需要移动字符而不是单词。
答案 0 :(得分:6)
如何放弃emacs模式并切换到vi模式编辑?
set -o vi
并且您拥有类似vi命令行编辑的所有功能,例如3l
左边三个字符,5B
返回5个字。然后,Pos 1键变为0
,End变为$
。
答案 1 :(得分:2)
在emacs
模式下,您可以使用 Meta 3 Control b 返回3字符和 Meta 3 控制 f 向前移动3个字符。对于多位数计数,您需要在每个数字前面加上 Meta 键(例如,移回10个字符, Meta 1 元 0 控制 b'/ KBD>)。
Meta 通常是 Alt 键,但可能是 Esc 键(例如,在Mac OS X上)。
(是的,vi-command
模式使其更容易。)
有一个命令universal-argument
,允许您一次键入所有数字,但默认情况下它是未绑定的。与之绑定,比方说,
bind "\C-a":universal-argument
然后键入 Control - a 将进入“参数”模式,前缀为当前行(arg: 4)
,并允许您键入数字以进行更改您键入的下一个非数字字符使用的参数。 (有关详细信息,请参阅universal-argument
手册页中的bash
。)
答案 2 :(得分:1)
您可以使用以下命令
命令:
cp some_file1 some_file2 some_file3 /root/Desktop
执行命令后,执行以下操作
^some_file2^some_file4
它将执行命令
cp some_file1 some_file4 some_file3 /root/Desktop ;
发生的事情是some_file2被some_file4替换并执行命令