我经常编译东西,因此一遍又一遍地重复相同的命令,所以我想从我的“视觉记忆”中受益,并在终端上附加一种“重复上一个命令”按钮。更准确地说,我是这样看的:
- 我的“特殊”终端就像标准终端仿真器一样,底部有一个额外的输入线,上面附有一个“运行”按钮。单击按钮将运行命令没有擦除它。
- 也许甚至可以堆叠任意数量的此类命令(因为我经常需要在 2 或 3 个命令之间交替)。
我知道我可以使用↑Enter键盘来重做最后一个命令,但经常发生的情况是,我忘记我只需要输入另一个命令(修复某些内容或其他),因此↑不会从历史记录中带来正确的命令。因此,我必须在按 Enter 之前实际阅读(至少浏览)命令,而不是条件反射。
某处有这样的装置吗?我经常精确地使用多个终端来确保每个终端始终具有“正确”的命令,但我的Alt+Tab技能通常会让我跳到错误的窗口。而且我需要终端信息,例如环境和 cwd,因此我不能只是尝试将其“集成”到我的代码编辑器中。我的意思是,使用Alt+F2然后Enter将不起作用(因为我还需要从终端读取输出)。我只是希望能够同时充分利用键盘和视觉记忆(通过点击)。
答案1
答案2
查看 shell 的历史功能。在我的 zsh 中:
!!
重复最后一个命令。
键入history
以查看最后几个条目。
要在 shell 中获取所需的缓冲区:
man zshzle
或者
man readline
另外,您可以使用 Tab 键展开补全
make long_target
ls some_path
...
make l<TAB> # prints 'make long_target' without running it
使用通配符、扩展...您的用例没有一处不在此功能之外。
答案3
使用+zsh
就可以做到这一点。键入命令,然后按+而不是。该命令将被执行,并且在命令完成后相同的命令将出现在行缓冲区中。EscAEscAEnter
答案4
看起来您需要一个非常简单的答案。既然您提到了Alt+ Tab,我假设您正在使用 (X)windows。在按“Enter”之前,用鼠标突出显示该命令。当您突出显示它时,它会自动复制到剪贴板。要粘贴它,请按鼠标中键(滚轮)或键入Shift+ Insert。