我想清除特定tmux窗格中的所有滚动历史。
当前回答
比大多数更简单的方法是,我只创建了一个名为cls的shell脚本,并在我想清除屏幕和滚动缓冲区时运行它。
这一切是这样的:
cls
clear;
tmux clear-history;
其他回答
Ctrl-L在控制台应用程序中用于重绘屏幕。我发现当绑定到send-keys -R时,它会导致方向键在某些应用程序(如vim, mc)中不再正常工作。
为了在控制台应用程序中保留重绘功能,我使用了:
bind-key -n C-l if-shell -F '#{alternate_on}' 'send-keys C-l' 'send-keys -R C-l; clear-history'
这需要打开tmux选项的备用屏幕(默认情况下是这样)。
这里的每个答案都在谈论添加新的键绑定。
如果你只是偶尔想这样做,你根本不需要映射……
Prefix默认为<Ctrl-b>
只需在相关窗格中键入<prefix> +:,然后键入clear-history并按enter。
如果您在命令行上,可以在相关窗格中运行tmux clear-history,以达到同样的效果。
关于tmux的一个很酷的事情是,您可以像这样运行任何命令……或者像tmux命令一样在shell/脚本中运行它们…或者为他们做一个快捷键。
比大多数更简单的方法是,我只创建了一个名为cls的shell脚本,并在我想清除屏幕和滚动缓冲区时运行它。
这一切是这样的:
cls
clear;
tmux clear-history;
如果您希望完全清除窗格,另一种选择是暂时将窗格调整为一行,清除历史记录,然后将其调整回来。这应该可以用一个tmux命令链无闪烁地工作。其优点是无论窗格中运行的是什么程序,它都可以正常工作。当然,这使得shell脚本逻辑更加复杂。
bind-key -n F11 run "
if [[ #{window_panes} == "1" ]] ; then
tmux send-keys C-l; sleep 0.1 ; tmux clear-history ;
else
restored_height=$((#{pane_height} + #{pane_at_bottom}));
tmux resize-pane -y 1 \\; clear-history \\; resize-pane -y \${restored_height} ;
fi
"
为什么不呢?bind -n C-l send-keys C-l
推荐文章
- 如何使制表符4个空间而不是8个空间在纳米?
- 如何强制从另一个SSH会话分离屏幕?
- 如何从终端机发送电子邮件?
- 我如何重命名一个窗格在tmux?
- Git显示“警告:永久添加到已知主机列表”
- Docker- compose无法连接到Docker Daemon
- 如何复制文件跨计算机使用SSH和MAC OS X终端
- 崇高的文本从命令行
- Git bash错误:无法fork子进程:没有可用的终端(-1)
- 使用grep删除空行
- Git在终端提交时打开VIM,但无法返回终端
- 提交指定文件
- 如何在Mac上设置我的默认shell,例如Fish?
- 如何在Linux虚拟机的控制台中上下滚动
- 如何在终端中提高光标速度?