在OSX上使用tmux,如何更优雅地清除command + k?


20

在OSX中使用终端时,经常使用+ K清除屏幕和回滚缓冲区。它深藏在肌肉记忆中。

我已经开始修改tmux,一个让人头疼的地方是+可以K擦除整个屏幕,窗格以及所有内容。我想让它只影响聚焦的窗格。

我可以以某种方式配置此行为吗?

Answers:


21

配置iTerm2发送清除命令

首选项->键-> +(添加新的全局快捷方式)

  • 键盘快捷键:⌘+ k
  • 行动:发送文字
  • 值:

清除\ n

或者配置iTerm2以有效地将⌘+ k映射到ctrl + 1

  • 键盘快捷键:⌘+ k
  • 行动:发送十六进制代码
  • 值:

0x0c

这样,您将不会看到文本闪烁,并且clear命令不会污染您的历史记录。


2
简单而优雅的解决方案。谢谢,我的朋友。
拉斐尔

美丽的解决方案!您使我的tmux体验变得更加愉快。谢谢您:)
Matt Darby

只是警告,这会将文本闪烁到终端
Jay

1
这很棒,但是它依赖于clear命令,因此在irb或rails控制台中无法使用。
罗伯特

17

您可以在+ 之后使用prefix+ 来重绘tmux窗口。rK

如果您可以改掉习惯,则每个窗格都可以正常使用ctrl+ l


3
ctrl + l与cmd + k不同,因为您仍可以向上滚动并查看ctrl + l的旧历史记录。例如,如果要记录日志,可以快速填充滚动回滚,则cmd + k是无价的,因为您确切知道上次中断的时间。ctrl + l不会为您执行此操作。
比约恩2014年

@BjornTipling⌘+ K是终端仿真器的功能,在tmux内不起作用...此绑定旨在清除静态stdout,而tmux以及其他程序(例如vim / emacs / weechat / mutt)正在显示。
2014年

1
+1打破习惯,直到今天我都不能停止这样做。最好的办法是输入clear,而不是我的猜测
zanona

3

您可以在中添加以下行.tmux.conf

# clear the current pane
bind -n C-k send-keys C-l \; clear-history

然后重新加载您的tmux配置。现在,您可以使用绑定键+k(例如:Ctrl+ bk)清除当前窗格。

我不知道OSX的语法,但我想您可以轻松地调整这行代码。


我看到这C-l清除了屏幕并clear-history清除了回滚缓冲区。该\;零件做什么?
内森·朗

它同时运行@NathanLong
Jay

3

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

这里得到这个

给他的道具。这对我来说就像Cmd+k在终端仿真器上一样对我有用,对我而言,在具有iTerm2的macOS 10.12.5上对我也一样。


即使像命令之类的命令tail -f ...或服务器正在运行,它也像超级按钮一样工作!
Derek
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.