如何在Bash中以'x'字符向右或向左移动?

问题描述:

在bash中,我有很长的命令,需要编辑一些单词。现在我使用结束/主页来移动命令的结束/开始,但是如果我必须移动说x字符在一行?如何在Bash中以'x'字符向右或向左移动?

我需要类似VI的xb/xw,而不是我需要移动字符的单词。

怎么样开水emacs模式和切换到vi模式编辑?

set -o vi 

和你有类似vi命令行编辑的所有的力量,像3l向左走三个字符和5B回去5个词语。 Pos 1键然后变成0并且End变成$

+0

真棒它的工作! – 2014-09-30 06:57:35

+0

这使我的一天。谢谢。 +1 – 2014-09-30 08:44:33

你可以使用命令如下

命令:

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替换,并执行该命令

+0

嗨! 感谢您的帮助,但这不实际,因为这意味着我必须执行第一条命令。这是一种破解。无论如何,我从这种方法中学到了一些新东西。 – 2014-09-30 09:24:13

emacs模式下,你可以使用控制b回迁3个字符,并控制˚F前进3个字符。对于多位数的计数,则需要先于每个数字与键(例如,10个字符回迁,控制b)。

通常是Alt键键,但可以是Esc键键代替(Mac OS X上,例如)。

(是的,vi-command模式使得它更容易。)

有一个命令,universal-argument,它允许你输入一次所有的数字,但它是默认绑定。有,比如将它绑定,

bind "\C-a":universal-argument 

然后键入控制 - 一个将进入你进入一个“说法”模式,前缀当前行(arg: 4),并允许你输入数字来改变所使用的参数您键入的下一个非数字字符。 (有关详细信息,请参见bash手册页中的universal-argument。)