当我使用 iterm2 搜索时,使用 ctrl+f 时,它将搜索缓冲区中的旧内容,比我在终端中运行的当前进程还要旧。在这种情况下,我不关心缓冲区中的旧内容,我想删除它。
我的问题是 - 有没有办法使用 bash 脚本/命令以编程方式清除缓冲区?我可以在启动时从我的进程中调用这个 shell 命令。
您可以使用AppleScript清除向后滚动缓冲区,然后执行终端clear
,将以下内容放入bash脚本中(或仅编译AppleScript部分并通过osascript
运行(
注意:尝试仅执行"清除缓冲区"将不起作用,因为cmd实际上仍在运行并且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 ``-'' $@