Jak w tmuxie na OSX mogę sprawić, by polecenia + k były bardziej płynne?


20

Kiedy używam terminala w OSX, często używam +, Kaby wyczyścić ekran i bufor przewijania. Jest głęboko w pamięci mięśni.

Zacząłem majstrować przy tmuxie, a jedną z przeszkód jest to, że + czyści Kcały ekran, panele i wszystko. Chciałbym, aby wpłynęło to tylko na skoncentrowane okienko.

Czy mogę jakoś skonfigurować to zachowanie?

Odpowiedzi:


21

Skonfiguruj iTerm2, aby wysłać polecenie kasowania

Preferencje -> Klawisze -> + (dodaj nowy skrót globalny)

  • Skrót klawiaturowy: ⌘ + k
  • Działanie: Wyślij tekst
  • wartość:

wyczyść \ n

Alternatywnie skonfiguruj iTerm2, aby skutecznie mapować ⌘ + k na ctrl + l

  • Skrót klawiaturowy: ⌘ + k
  • Działanie: Wyślij kod szesnastkowy
  • wartość:

0x0c

W ten sposób tekst nie będzie migał, a polecenie wyczyszczenia nie zanieczyści Twojej historii.


2
Proste i eleganckie rozwiązanie. Dziękuję, przyjacielu.
Rafael

Piękne rozwiązanie! Sprawiłeś, że moje doświadczenie tmux jest o wiele przyjemniejsze. Dziękuję :)
Matt Darby,

Tylko ostrzeżenie, to spowoduje przesłanie tekstu do terminala
Jay

1
Jest to świetne, ale opiera się na clearpoleceniu i dlatego nie będzie działać, gdy będzie w konsoli IRB lub Rails.
Robert

17

Możesz użyć prefix+ r, po + K, aby przerysować okno tmux.

Jeśli możesz zerwać z nałogiem, normalne ctrl+ ldziała normalnie dla każdego panelu.


3
ctrl + l to nie to samo co cmd + k, ponieważ nadal możesz przewijać w górę i przeglądać starą historię za pomocą ctrl + l. Jeśli na przykład przeglądasz dziennik, który szybko wypełnia przewijanie, cmd + k jest nieocenione, ponieważ wiesz dokładnie, kiedy ostatnio przerwałeś. ctrl + l nie zrobi tego za ciebie.
Bjorn

@BjornTipling ⌘ + K jest funkcją emulatora terminala i nie będzie działał wewnątrz tmux ... to wiązanie ma na celu wyczyszczenie statycznego standardu, co nie jest tym, jak tmux i inne programy, takie jak vim / emacs / weechat / mutt, są wyświetlane.
skromny

1
+1 za zerwanie z nałogiem, nie mogę przestać tego robić do dziś. Najlepiej jest clearzamiast tego
pisać

3

Możesz dodać następujące wiersze w swoim .tmux.conf:

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

Następnie załaduj ponownie konfigurację tmux. Teraz możesz użyć klucza powiązania +k(np .: Ctrl+ b, k), aby wyczyścić bieżące okienko.

Nie znam składni dla OSX, ale myślę, że można łatwo dostosować linię.


Widzę, że C-lczyści ekran i clear-historyusuwa bufor przewijania. Co robi ta \;część?
Nathan Long

działa zarówno @NathanLong
Jay

3

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

Mam to stąd

Podpiera się do niego. Działa to dla mnie tak samo, jak Cmd+kdziała na emulatorze terminali i działa na mnie na macOS 10.12.5 z iTerm2.


Działa jak urok, nawet gdy uruchomione jest polecenie takie jak tail -f ...lub serwer!
Derek
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.