【问题标题】:Tmux clear history in bash vi modeTmux 在 bash vi 模式下清除历史记录
【发布时间】:2018-03-19 20:12:32
【问题描述】:

我最近刚刚切换到使用 bash vi 模式,并在我的 .bash_profile 中设置了 set -o vi。但这会导致一个问题

我有一个 tmux 映射,当我按下 <ctrl>+k 时会运行 clear-history 命令。这是相关的映射

bind -n C-k clear-history

这在 bash vi 模式下不起作用,可能是因为 vi 模式优先。如何解决或解决此问题?

【问题讨论】:

    标签: bash vim command-line terminal tmux


    【解决方案1】:

    您可以更改密钥,这是我使用的:

    # reset & clear history
    bind r send-keys -R \; send-keys C-l \; clear-history 
    

    你必须按 ctrl+b+r

    k 确实可以使用,但是如果您还跨面板移动(ctrl + hkjl),它可能会变得混乱。

    在任何情况下,只需使用 ctrl+k

    bind -n C-k send-keys C-l \; run-shell "sleep .3s; tmux clear-history"
    

    不使用睡眠:

    bind -n C-k send-keys -R \; send-keys C-l \; clear-history
    

    【讨论】:

    • 这对我不起作用?,它不会清除历史记录。我仍然可以使用 <ctrl>+b [ 滚动浏览历史记录
    • 使用r而不是k的映射?
    • 不太明白,什么意思?我复制了您在答案中的内容并将其粘贴到我的.tmux.conf 及其清除屏幕中,但不是历史记录,因为即使按下它后我也可以向后滚动
    • 我认为它只是在执行C-l 而不是之后的clear-history
    • 我更新了答案,试试看(顺便提个有趣的问题)
    【解决方案2】:

    来自this question,我有以下 tmux 映射:

    bind-key -n C-k send-keys -R \; send-keys Escape C-l a \; clear-history
    

    这有很多变体(每种都有优点和缺点,并且适用于不同的用例);请参阅链接的问题。

    【讨论】:

      猜你喜欢
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-05
      相关资源
      最近更新 更多