我想清除特定tmux窗格中的所有滚动历史。
当前回答
正如@juanpaco正确指出的那样,clear-history是清除滚动缓冲区的命令。 我还要补充一点,我喜欢在同一个命令中清除屏幕上的内容。 发出一个send-keys -R会重置(清除)屏幕,所以我在.tmux.conf中使用了下面的代码
-R \;clear-history
这将清除屏幕和滚动缓冲区。
其他回答
我使用了上面的一些资料,再加上其他资料,得出了以下结论:
bind k send-keys C-u \; send-keys C-k \; send-keys " clear && tmux clear-history" \; send-keys "Enter" \; run-shell "sleep .3s" \; send-keys "Up" \; send-keys C-u
" clear && tmux clear-history"中的前导空格防止命令被写入历史文件(前提是你的shell设置以这种方式处理前导空格;谷歌“hist忽略空格”+你的壳的名字,以获取更多信息)。我喜欢让这个命令不显示在我的历史记录中,因为这与终端中的ctrl-k更内联。
第一个发送键C-u和发送键C-k将清除当前在提示符下键入的任何内容,以确保“clear && tmux clear-history”是成功的(例如,如果您在提示符下键入了“ABCDEFG”,并且将光标放在D和E之间,这将确保“ABCD clear && tmux clear- historyefg”不会发送到shell,这将失败)。
发送键“Up”和最后一个发送键C-u清除shell内部历史记录中的最后一项。即使使用上面提到的尾随空格,shell的内部历史记录也将包括“clear…”行。向上发送和Ctrl-u可以去掉这个。
最后,在iTerm中,我将ctrl-k设置为映射到ctrl-a k(我的tmux前缀设置为ctrl-a),所以我可以输入ctrl-k,这是我多年来想做的事情。我这样做,通过到iTerm >首选项>配置文件>键,并添加一个快捷方式发送十六进制代码“0x01 0x6B”。这里有一篇很棒的文章,提供了更多关于在tmux和iTerm中使用十六进制代码的信息:http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/
这就得到了ctrl-k和tmux。唯一让我感到困扰的是,如果您当前在提示符下输入了一些内容,那么没有tmux的真正ctrl-k没有问题,并且在清除屏幕时将保留您键入的内容。如前所述,这种方法需要清除输入的内容,这样“clear…”命令才不会失败。但它非常接近!
我发现使用send-keys - r有点慢-这里有另一种方法用一个命令清除屏幕和历史记录
bind-key C send-keys "clear && tmux clear-history" \; send-keys "Enter"
嵌套tmux调用的使用更为明显
“clear”\;send-keys“Enter”\;clear-history
未能从历史记录中清除屏幕的当前文本- clear-history命令似乎在单独的线程中运行以发送密钥。
正如@juanpaco正确指出的那样,clear-history是清除滚动缓冲区的命令。 我还要补充一点,我喜欢在同一个命令中清除屏幕上的内容。 发出一个send-keys -R会重置(清除)屏幕,所以我在.tmux.conf中使用了下面的代码
-R \;clear-history
这将清除屏幕和滚动缓冲区。
比大多数更简单的方法是,我只创建了一个名为cls的shell脚本,并在我想清除屏幕和滚动缓冲区时运行它。
这一切是这样的:
cls
clear;
tmux clear-history;
如果你想结合CTRL-L加上clear-history,添加到你的~/.tmux.conf:
bind u send-keys C-l \; run-shell "sleep .3s" \; clear-history
这甚至适用于MySQL shell。
推荐文章
- 如何清除tmux中的滚动缓冲区?
- 在tmux中保持窗口名称固定
- 如何发送一个命令到所有窗格在tmux?
- (Mac) -bash: __git_ps1:命令未找到
- 在Bash中重用上一个命令的输出
- 临时更改bash中的当前工作目录以运行命令
- 如何断开tmux中的所有其他用户?
- 在tmux模式中丢失vim配色方案
- 在Ubuntu中创建一个目录的符号链接
- 在Python中清除终端
- 使用scp将文件复制到Amazon EC2实例?
- 在安装Homebrew后,我得到' zsh:命令未找到:brew '
- Adb命令未找到
- npm install -g less does not work: EACCES:权限被拒绝
- 如何在OS X上编辑$PATH (.bash_profile) ?