Як tmux на OSX, як я можу зробити команду + k очищення більш витончено?


20

Коли я використовую термінал в OSX, я часто використовую + Kдля очищення екрана та буфера прокрутки. Це глибоко в м’язовій пам’яті.

Я почав займатися tmux, і одна проблема - це те, що + Kвитирає весь екран, панелі та все. Я хотів би, щоб він впливав лише на зосереджене скло.

Чи можу я якось налаштувати таку поведінку?

Відповіді:


21

Налаштуйте iTerm2 для надсилання чітких команд

Налаштування -> Клавіші -> + (додавання нової глобальної ярлика)

  • Комбінація клавіш: ⌘ + k
  • Дія: Надіслати текст
  • значення:

очистити \ n

Крім того, налаштуйте iTerm2 для ефективного відображення ⌘ + k на ctrl + l

  • Комбінація клавіш: ⌘ + k
  • Дія: Надішліть Hex-код
  • значення:

0x0c

Таким чином, ви не побачите спалах тексту, і чітка команда не забруднить вашу історію.


2
Просте і елегантне рішення. Дякую тобі друже.
Рафаель

Прекрасне рішення! Ви зробили мій досвід tmux набагато приємнішим. Дякую :)
Метт Дарбі

Лише попередження, це спалахне текст до терміналу
Джей

1
Це чудово, але воно покладається на clearкоманду і тому не працюватиме, перебуваючи всередині консолі irb або rails.
Роберт

17

Ви можете використовувати prefix+ r, після + K, щоб перемалювати вікно tmux.

Якщо ви можете порушити звичку, нормальний ctrl+ lпрацює нормально на панелі.


3
ctrl + l - це не те саме, що cmd + k, оскільки ви все ще можете прокрутити вгору та переглянути стару історію за допомогою ctrl + l. Наприклад, якщо ви записуєте журнал, який швидко заповнює ваш прокрутку назад, cmd + k є безцінним, оскільки ви точно знаєте, коли ви востаннє зупинялися. ctrl + l цього не зробить за вас.
Bjorn

@BjornTipling ⌘ + K є особливістю емулятора терміналу, і він не працюватиме всередині tmux ... це прив'язка призначена для стирання статичного stdout, як не tmux, та інших програм, таких як vim / emacs / weechat / mutt, відображаються.
демуре

1
+1 за порушення звички, я не можу перестати це робити до сьогодні. Найкраще набрати clearзамість цього я здогадуюсь
zanona

3

Ви можете додати наступні рядки у свій .tmux.conf:

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

Потім перезавантажте конфігурацію tmux. Тепер ви можете використовувати свій ключ прив'язки +k(наприклад: Ctrl+ b, k) для очищення поточної області.

Я не знаю синтаксис для OSX, але, мабуть, ви можете легко адаптувати рядок.


Я бачу, що C-lочищає екран і clear-historyочищає буфер прокрутки. Що робить \;частина?
Натан Лонг

він працює як @NathanLong
Jay

3

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

Отримав це звідси

Реквізити до нього. Це працює для мене так само, як Cmd+kпрацює на емуляторі терміналу, і працює для мене на macOS 10.12.5 з iTerm2.


Працює як шарм, навіть коли працює команда типу tail -f ...або сервер!
Дерек
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.