Przewijanie myszą nie działa w tmuxie tak, jak działa, gdy uruchamiam powłokę bez tmux (w Gnome Terminal). Wygląda na to, że tmux wysyła zdarzenia przewijania myszą, tak jakbym naciskał klawisze góra / dół. Ale chcę, aby przewijał historię wyników powłoki . Czy istnieje sposób, aby Tmux działał w ten sposób?
Uwaga: Wiem, jak przewijać za pomocą klawiatury (dzięki kolejnemu pytaniu tutaj).
Próbowałem przewijania myszy w dwóch wersjach tmux:
- 0.8-5hardy1 (na Ubuntu 8.04 (Hardy Heron))
- 1.3-1 (na Ubuntu 10.10 (Maverick Meerkat))
Odpowiedzi:
Aby przewijać w historii wyników Użyj
^b
+.[
Następnie możesz użyć M + V, aby przewinąć w górę, a ^ V, aby przewinąć w dół. Nie wiem, czy możesz użyć prawdziwego PgUpi PgDownchociaż. Mój terminal nie wysyła tych kluczy do Tmux. Zamiast tego przewija się sama, a nie historia Tmux.Aby wyjść z trybu kopiowania, naciśnij ESC
Aby używać myszy w tym trybie (nazywanym trybem kopiowania), naciśnij
^b
+:
i wprowadź następujące informacje:Uwaga: W tmux <2.1 opcja została nazwana
mode-mouse
, a niemouse
Teraz, gdy przejdziesz do trybu kopiowania, możesz przewijać go za pomocą myszy. Możesz umieścić to polecenie w ~ / .tmux.conf, jeśli chcesz, więc ładuje się przy każdym uruchomieniu tmux.
Aktualizacja: Począwszy od tmux 1.5 ta opcja powoduje, że użycie kółka przewijania automatycznie przełącza się w tryb kopiowania i przewija bufor bufora przewijania tmux do tyłu. Nie jest już konieczne, aby najpierw uderzyć
Ctrl-B
+[
. Przewinięcie z powrotem do monitu powoduje również automatyczne wyłączenie trybu kopiowania.źródło
set -g mouse on
pracował dla mnie na macOS tmux 2.1Istnieją pewne zmiany dla Tmux 2.1
Tryb myszy został przepisany. Nie ma już opcji dla:
Zamiast tego istnieje tylko jedna opcja: „mysz”, która całkowicie włącza obsługę myszy.
To by było
źródło
bind
nie wydaje się już potrzebny na tmux 2.3set -g mouse on
. Poprzedni komentarz jest poprawny. Wiązanie nie jest już potrzebne.Obecna wersja tmux (1.5) pozwala po prostu włączyć opcję mode-mouse i umożliwia przewijanie za pomocą kółka myszy.
W moim pliku .tmux.conf:
źródło
C-A PgUp
aby to zrobić. Możesz powiązać klawisz page-up bezpośredniotmux bind-key -n PPage copy-mode -u
. Podobne polecenie powinno działać dla shift + pageup, jeśli odłączysz go od lokalnego terminalu.Spróbuj tego w swoim .tmux.conf
Zaczerpnięte z http://brainscraps.wikia.com/wiki/Extreme_Multitasking_with_tmux_and_PuTTY
źródło
escape-time
ustawienieKtoś (z utraconego źródła) zasugerował dodanie następujących elementów do
~.tmux.conf
:Nie mam pojęcia, jak to działa ani co robi, ale teraz pozwala mi to przewijać kółkiem myszy w sesji tmux bez konieczności wchodzenia w tryb kopiowania tmux; Po prostu przewijam koło i BAM! to działa. Zauważ, że używam terminal.app, ale pamiętam, że OP dał odpowiedź specjalnie do użycia z
gnome-terminal
.źródło
less
. Jeśli załaduję doless
środkatmux
, przewijanie myszy nie przewija pliku otwartego wless
. Przewija cały terminal. O dziwo,vim
zachowuje się zgodnie z oczekiwaniami wtmux
twojej konfiguracji.setw -g mode-mouse on
opcję, która przewija tryb kopiowania za pomocą kółka myszy.man xterm
objaśniania alternatywnego ekranu.tmux 2.1 wprowadza nowe wiązania myszy.
Napisałem te wiązania właśnie dzisiaj. Bezproblemowo wiąże kółko myszy ze strzałkami, gdy nie jest w Vimie, ponieważ Vim jest w stanie interpretować nieprzetworzone kody kół myszy (w celach takich jak wybór okna Vima do przewijania w zależności od tego, nad którym znajduje się Twoja mysz).
Oznacza to, że możemy w końcu używać myszy tylko do przeglądania wielu stron podręcznika i cokolwiek innego akceptuje klawisze strzałek. W razie potrzeby możesz rozszerzyć i połączyć
if
logikę, aby zaimplementować większą logikę dla swoich aplikacji.Dzięki tej nowej funkcji wiązania kół możliwe jest pisanie skryptami kółka myszy, aby wykonać dowolne zachowanie zależne od kontekstu.
źródło
Gnome-terminal wykonuje pewne sztuczki, tłumacząc zdarzenia przewijania myszy na klawisze strzałek w górę i w dół w warunkach ograniczonego „zwykłego” przewijania. Na przykład, podczas przeglądania tekst używając
less
(to dzieje się w szczególności, gdy czytasz człowieka), można przewijać zawartość za pomocąj
,k
oraz klawiszy strzałek. Ale także ,gnome-terminal
dzięki wspomnianemu trikowi, możesz to zrobić za pomocą przewijania myszą.Sądzę więc, że
tmux
pewne „przechwytywanie” terminala jest podobneless
- i uruchamia się ten sam mechanizmgnome-terminal
: przewijanie myszy przekłada się na naciśnięcia klawiszy strzałek w górę / w dół.Możesz wyłączyć tę funkcję w ustawieniach profilu i uzyskać regularne przewijanie w każdych okolicznościach. Wystarczy odznaczyć pole wyboru w ostatniej zakładce „przewijanie”: .
źródło
gnome-terminal
przestaje wysyłać potrójne^[[A
i^[[B
przewija się myszą. Jest ładniejszytmux
(nie jest brzydki^[[A^[[A^[[A
w niektórych programach, nie ma brzydkiego przewijania historii poleceń), ale terazless
przestaje przewijać przy przewijaniu myszą.i
postaci)https://github.com/NHDaly/tmux-better-mouse-mode
Konfigurowalna i bogata w funkcje implementacja sterowania myszą dla nowszych tmuxów. wysoce rekomendowane.
Prawdopodobnie chcesz użyć
z tym też.
źródło
Możesz połączyć wiążące pomysły z innych odpowiedzi, aby uzyskać całkiem satysfakcjonujące zachowanie przewijania: działa w vim zmiany do trybu kopiowania automatycznie w terminalu i wychodzi z niego, gdy osiągniesz dno, nadal pozwala używać kółka myszy w man, less i Journalctl.
Mój kod:
możesz dodać inne polecenia, które wymagają klawiszy strzałek do przewijania w części grep -e 'man'
dodałem klucze wysyłania wiele razy, więc jedno kliknięcie na kółku myszy przewinie 4 linie na raz
źródło
Jeśli jesteś już w sesji tmux, możesz uruchomić polecenie
Przypomnienie: aby uruchomić polecenia, użyj prefiksu
:
.źródło