我只是输入以下内容:
mv foo/bar/poit/zoid/narf.txt
突然我意识到,该死,我必须再次输入该参数的大部分内容:
mv foo/bar/poit/zoid/narf.txt foo/bar/poit/zoid/troz.txt
即使使用制表符补全,这也是相当痛苦的。我知道我可以通过鼠标选择文本并单击鼠标中键来复制粘贴参数,但这还不够好。我想把手放在键盘上。
有没有办法使用键盘复制粘贴该行的当前参数?
答案1
答案2
如果我提前计划,我会使用大括号扩展。在这种情况下:
mv foo/bar/poit/zoid/{narf,troz}.txt
这是使用默认readline
键盘快捷键的另一种方法:
mv foo/bar/poit/soid/narf.txt
: 开始- Ctrl- w:
unix-word-rubout
删除foo/bar/poit/soid/narf.txt
- Ctrl- y, Space, Ctrl- y:
yank
, 空格,yank
再次得到mv foo/bar/poit/soid/narf.txt foo/bar/poit/soid/narf.txt
- Meta- backspace, Meta- backspace:
backward-kill-word
两次删除最后一个narf.txt
troz.txt
:键入不同的尾部部分
如果您花费大量时间使用 shell bash
,我建议您定期阅读默认快捷方式列表,并挑选一些似乎对学习有用的快捷方式并将其纳入您的日常工作中。 bash
手册第 8 章是一个很好的起点。了解捷径确实可以提高你的效率。
答案3
正如您的示例中所示,您可以使用下一个构造:
mv foo/bar/poit/zoid/{narf.txt,troz.txt}
甚至(按照建议安斯加尔·埃斯特曼):
mv foo/bar/poit/zoid/{narf,troz}.txt
而不是键入/复制粘贴长地址两次。
答案4
玩了一下我得到了这个工作:
mv foo/bar/poit/zoid/narf.txt
点击Enter
存储最后一个参数。
现在用于↑获取最后输入的内容。输入一个空格并获取最后使用的参数:
Alt+.
我讨厌引发错误,但它可以在这个用例中完成工作。