例如,假设我正在浏览我的历史记录,并到达我之前输入的多行命令:
~ >> for f in *; do
echo $f
done
vim
我已经在 ZLE ( ) 中启用了绑定bindkey -v
,因此我可以Esc在此时键入并使用vim
按键来绕过、跨行移动等。我还可以yy执行拉动当前行的操作。然而,似乎没有一种明显的方法来复制所有这些行。
有任何想法吗?
答案1
我想到了两种(诚然很麻烦)的方法。第一个是使用 Vim,第二个是 Urxvt 的小实用程序(如果这是您的终端模拟器):
在你的历史记录中,点击v打开你的当前命令
$EDITOR
(自然是 Vim),然后Shiftvg选择之前的所有行将"+*其拖到剪贴板。你也可以使用urxvt-perls为此(和其他)终端中的增强功能,包括拉动和粘贴。在这种情况下:AltEscape进入选择模式Shiftv,2k选择所有行并将y它们拉入缓冲区,然后q退出。ShiftInsert粘贴拉出的文本。1
第一种方法似乎是最直接的,假设没有一些直接的方法可以仅使用 Zsh 的行编辑功能来实现。2
1. 这些按键绑定都可以在您的~/.Xresources
2. 中进行配置,这不会让我感到惊讶......