以编程方式清除 iterm2 缓冲区

programmatically clear iterm2 buffer

当我使用 iterm2 搜索时,使用 ctrl+f,它将搜索缓冲区中较旧的内容,比我在终端中 运行 的当前进程更旧。在这种情况下,我不关心缓冲区中的旧内容,我想删除它。

我的问题是 - 有没有一种方法可以使用 bash script/command 以编程方式清除缓冲区?我可以在我的进程启动时调用这个 shell 命令。

您可以使用 AppleScript 清除回滚缓冲区,然后执行终端 clear,将以下内容放入 bash 脚本(或只编译 AppleScript 部分和 运行通过 osascript)

注意:尝试只执行 "Clear Buffer" 将不起作用,因为 cmd 实际上仍在 运行ning 并且 iTerm 接受 CMD-K,但它不会清除屏幕...漏洞?执行时机? ....

#!/bin/bash
read -r -d '' script <<'EOF'
on run argv
   tell application "iTerm"
     tell application "System Events" to keystroke "K" using {shift down, command down}
     tell current window
        tell current session
           write text "clear"
        end tell
     end tell
   end tell
end run
EOF
echo "$script" | osascript ``-'' $@