将其绑定到键盘快捷键:

将其绑定到键盘快捷键:

在 iTerm2 中(撰写本文时我正在使用 Build 2.1.4),如何清除所有会话的回滚缓冲区。我知道cmd+K将清除当前会话。使用相同的组合键与广播输入不起作用。

感谢您的帮助!

答案1

这个 applescript 应该清除当前 iTerm 窗口中所有会话的回滚:

tell application "iTerm"
    tell current terminal
        activate
        set myCurrentSession to the current session
        repeat with theSession in sessions
            tell theSession
                select
                tell application "System Events" to tell process "iTerm"
                    click menu item "Clear Buffer" of menu 1 of menu bar item "Edit" of menu bar 1
                end tell
            end tell
        end repeat
        select myCurrentSession
    end tell
end tell

将其绑定到键盘快捷键:

  1. 打开 Automator 并创建一个新的服务。

  2. 将“服务接收”设置为“无输入”,并选择“iTerm.app”作为应用程序。

  3. 放入一个运行 Applescript操作,然后粘贴上面的代码。

  4. 另存为clear-all-scrollback-buffers-in-current-iterm-window

    现在,当 iTerm 打开时,您将在菜单栏中看到该服务终端>服务

  5. 打开系统偏好设置>键盘>快捷方式>服务。向下滚动直到看到clear-all-scrollback-buffers-in-current-iterm-window。为其指定键盘快捷键(例如optioncommandk

如果这不起作用,您可以尝试以下 AppleScript:

tell application "iTerm"
    tell current terminal
        activate
        repeat with theSession in sessions
            tell theSession
                select
                tell application "System Events"
                    delay 0.1
                    keystroke "k" using {command down}
                end tell
            end tell
        end repeat
    end tell
end tell

答案2

接受的答案对我不起作用。我正在使用 iTerm2 Build 3.0.15。

将所需操作(在我的情况下为清除缓冲区)绑定到后,效果如下F12

tell application "iTerm"
    set currentWindow to the current window
    set currentTab to the current tab of the current window
    set currentSession to the current session of the current tab of the current window
    repeat with aWindow in windows
        tell aWindow
            activate
            repeat with theTab in tabs of aWindow
                tell theTab
                    select
                    repeat with theSession in sessions of theTab
                        tell theSession
                            select
                            tell application "System Events" to tell process "iTerm"
                                tell application "System Events"
                                    key code 111
                                end tell
                            end tell
                        end tell
                    end repeat
                end tell
            end repeat
        end tell
    end repeat
    select currentWindow
    select currentTab
    select currentSession
end tell

这是一个很有用的工具,因为我倾向于让日志全天候运行。我安排它每天早上通过 crontab 运行,这样我上班时就可以拥有一个干净的记录和一些释放的内存(根据我跟踪的日志文件,内存可能达到 GB)。

相关内容