Vim

有沒有辦法在 vim 中打開螢幕的終端回滾緩衝區?

  • June 29, 2021

我正在尋找一種永遠和永遠放下滑鼠的方法。我到了一個非常舒服的點,我不使用它來進行正常的文本編輯,但是,有些事情困擾著我。當我使用 shell 並且想要複製一些 prev 輸出時,我需要使用滑鼠突出顯示 + 複製。太糟糕了。我知道screen‘Ctrl-A [‘很酷,但我想在 Vim 中瀏覽回滾,而不是在 Screen 的內置界面中。

有沒有辦法讓我將目前的 shell 輸出緩衝區打開到 Vim 並從中複製?

從螢幕視窗中,執行

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。)

如果您不介意再次執行該命令,您可以隨時執行

<command> | vim -

如果您還關心stderr

<command> 2>&1 | vim -

如果您想搜尋模式並在該位置打開 vim,則特別有用:

grep -iIrHn <pattern> | vim -

然後將游標放在花樣的線條上並按gF

引用自:https://unix.stackexchange.com/questions/402424