我正在寻找一种永远摆脱鼠标的方法。我已经到了一个非常舒服的地步,我不使用它进行常规文本编辑,但是,有些事情困扰着我。当我使用 shell 并想要复制一些先前的输出时,我需要使用鼠标突出显示 + 复制。太糟糕了。我知道screen
“Ctrl-A [”很酷,但我想在 Vim 中浏览回滚,而不是在 Screen 的内置界面中。
有没有办法让我在 Vim 中打开当前 shell 输出缓冲区并从中复制?
答案1
从屏幕窗口内运行
screen -X hardcopy -h s
vim s
rm s
hardcopy -h
将回滚转储到临时文件中,然后您可以根据需要在 Vim 中打开该文件。如果您编写此脚本,则应该使用正确的临时文件名:
#!/bin/sh
scrollback_file=$(mktemp)
screen -X hardcopy -h "$scrollback_file"
vim -c 'call delete(@%)' "$scrollback_file"
(或者您可以在 Emacs 或 Neovim 中运行 shell。)
答案2
如果您不介意再次运行该命令,您随时可以这样做
<command> | vim -
如果您还关心stderr
:
<command> 2>&1 | vim -
如果您想搜索模式并在该位置打开 vim,则特别有用:
grep -iIrHn <pattern> | vim -
然后将光标置于花样的线条上,然后按gF