Vim、vimux、tmux 和清除回滚缓冲区窗格

nee*_*zer 5 vim tmux

更新:我一直在玩这个,看起来 tmux 的clear-history命令可能被破坏了。

0.0如果我在和 处打开两个窗格,然后在then (in ) run0.1中输入 18 个命令0.10.0

tmux send-keys -t 0.1 q C-u "clear; tmux clear-history" C-m
Run Code Online (Sandbox Code Playgroud)

...然后切换到窗格0.1并进入复制模式并向上滚动,滚动缓冲区未清除。

但是,如果我clear; tmux clear-history直接从运行0.1,则滚动缓冲区将被正确清除。

我正在运行 tmux 1.6。对这种行为有什么想法吗?


我正在使用vimux将测试发送到 tmux 窗格,并在我的测试命令前加上前缀

call RunVimTmuxCommand("clear; ruby -Itest /spec/some_spec.rb")
Run Code Online (Sandbox Code Playgroud)

...但是由于 MiniTest 在某些失败时为我提供了一些相当长的堆栈跟踪,因此我开始在 vimux 窗格上进入复制模式并搜索ERRORwith /,这效果很好。

唯一的问题是该窗格保留了回滚历史记录,因此我会发现我已经修复的测试失败(因为我正在搜索历史记录)。

我尝试将上面修改为

call RunVimTmuxCommand("clear; tmux clear-history; ruby -Itest /spec/some_spec.rb")
Run Code Online (Sandbox Code Playgroud)

但从 vimux 发送时这似乎不起作用。如果我手动运行完全相同的命令(就像我切换到 vimux 窗格并自己运行它一样),它工作得很好。

我假设这与 vimux 如何向窗格发送命令有关,但我不知道如何修复它。有人有什么建议吗?

nee*_*zer 2

我写信给 vimux 的作者,他已经修好了;惊人的!

https://github.com/benmills/vimux/issues/26