Jak uzyskać terminal.app i przewijanie ekranu / vima w systemie Mac OS X, aby grać dobrze?


13

OSX 10.6.3 Terminal.app

Jestem bardzo oddanym użytkownikiem ekranu. Bufor linii i / lub przewijanie terminal.app wydaje mi się nie działać. Oznacza to, że gdy na ekranie zniknie wszystko, co przechodzi poza górną część ramki, nie można przewinąć z powrotem do. Wydaje się, że działa to dobrze w innych aplikacjach terminalowych gnome, cygwin. Być może jest to powłoka env, config lub polecenie?

.screenrc:

startup_message off  
autodetach on  
shell -$SHELL  
vbell off  
defutf8 on  
caption always  
caption string "%{= wk}%w"  

Próbowałem użyć defscrollback tutaj z różnymi wartościami, ale nie ma to żadnego efektu.

niektóre ustawienia .bashrc:

set -o physical  
export TERM=xterm-color  
shopt -s checkwinsize  

Odpowiedzi:


15

W Lion domyślny typ terminala jest inny, dlatego .screenrczamiast tego należy użyć tej linii :

termcapinfo xterm-256color|xterm-color|xterm|xterms|xs|rxvt ti@:te@


Dla mnie to nie działa :( „echo $ TERM” zwraca „xterm-256color”, więc jestem pewien, że jest to właściwa wartość końcowa, ale żadna podana wartość nie obowiązuje.
Tim Harper

15

W swoim katalogu domowym umieść w pliku .screenrcnastępujący tekst:

# Make xterm scrolling work properly with screen.
termcapinfo xterm-color|xterm|xterms|xs|rxvt ti@:te@

Działa również dla Terminal.app.


2
Wiem, że działało to w systemie Snow Leopard, ale nie działa w OS X Lion. Bummer :(
Tim Harper

1
Właśnie tego szukałem - pracując dla mnie w OS X Lion 10.7.3 z Terminal.app - fantastycznie!
ponury

Działa również dla mnie w systemie OS X Lion 10.7.5 (Uwaga: w odpowiedzi jest niewielka literówka; plik, w którym należy zapisać polecenie, to ~ / .screenrc, to znaczy w katalogu domowym w pliku o nazwie „.screenrc” - nie „screenrc”. Zredagowałem odpowiedź, aby to odzwierciedlić.)
likethesky

8

Myślę, że powinien również działać, a nawet bardziej uniwersalny:

termcapinfo xterm* ti@:te@

To byłoby bardziej uniwersalne. To legalne:

termcapinfo * ti@:te@

To jest najlepsza odpowiedź imho.
Steve Bennett,

3

Stary wątek zdaję sobie sprawę, ale za co warto:

Jeśli używasz poprawnie skonfigurowanego iTerm2 w Mac OS X Mountain Lion 10.8.2, wydaje się, że nie trzeba również tworzyć / edytować pliku .screenrc, zgodnie z pomocną sugestią Garetha powyżej.

  1. Zainstaluj iTerm2-1_0_0_20120726

  2. Uruchom iTerm2> menu Profil> Otwórz profile> wybierz Domyślny> Edytuj profil> karta Terminal> Zaznacz WŁ .:

    • Zapisz linie do przewijania, gdy obecny jest pasek stanu aplikacji
    • Nieograniczone przewijanie (opcjonalnie)
  3. Uruchom ponownie iTerm 2 (lub uruchom nową powłokę)

  4. Przetestuj: osobiście I SSH do Ubuntu 12.04.1 LTS na AWS EC2> uruchomiłem byobu (już skonfigurowany do korzystania z ekranu, a nie domyślnego tmux)> Scrollback działa teraz dobrze (plus, tak czy inaczej iTerm jest bettah niż Terminal ...)

-dk


To jest niesamowite!!
HaxElit

@David Keenan Tak się cieszę, że opublikowałeś to rozwiązanie!
ivan

2

Krótka odpowiedź:

Wpisz crtl-a+ [i użyj klawiszy przewijania / strzałek lub pgup/ pgdwn. Aby wyjść z „trybu przewijania” (nie rzeczywistej nazwy), naciśnijEsc

Długa odpowiedź: ten artykuł o buforze przewijania ekranu.


proszę skomentować głosowanie negatywne.
lajuette

Uwaga: wydaje się, że ta metoda wstrzymuje uruchomiony proces. Co może, ale nie musi być pożądane
kawalkada

1

Nie wiem, czy jest możliwe, aby bufor przewijania terminalu zbierał i pracował z przewijaniem gnu screen.

Polecam przeczytać więcej o przewijaniu w obrębie samego ekranu. Musisz nauczyć się kilku nowych kombinacji klawiszy - skoro już używasz screena, wątpię, żeby cię to odstraszyło.

Z niewielką pomocą Google znalazłem post na blogu o nazwie Praca z buforem przewijania .

Nie spodziewałem się, że scrollback kiedykolwiek zintegruje się z buforem Terminal.app. Jeśli przełączysz się z jednego ekranu wirtualnego na inny, co stanie się z buforem terminala? Jeśli rozłączysz się z jednym komputerem i ponownie połączysz trzy godziny później, bufor terminala już dawno nie jest zsynchronizowany.

screento moje małe okno na inny serwer. Podoba mi się bufor przewijania tego ekranu nadal trwa w sesji, dzięki czemu mam do niego dostęp z dowolnego miejsca, w którym się łączę. Podoba mi się, że każdy ekran w mojej sesji ma własny bufor przewijania.

Myślę, że to działa w gnome i cygwin, ponieważ screenużywa funkcji „alternatywnego ekranu” xterm. Jest więcej dyskusji na ten temat w pierwszym pytaniu na tej stronie z często zadawanymi pytaniami .


dzięki, świetne informacje. tak, tryb kopiowania jest bardzo podobny do vima, podoba mi się. :)
rustychains,

1

Używam iTerm 2 . Istnieje opcja w obszarze Profile> terminal, która mówi: „Zapisz linie do przewijania, gdy obecny jest pasek stanu aplikacji”. To i wprowadzenie:

defutf8 on
termcapinfo xterm-color|xterm|xterms|xs|rxvt ti@:te@

w screenrc załatwiło sprawę. Przewijanie!


0

Jeśli przejdziesz do menu Terminala i wybierzesz Preferencje ..., a następnie kliknij kartę okna u dołu, dostępne są opcje przewijania, czy jest zaznaczony przycisk opcji Nieograniczony?


wybrano nieograniczony
rustychains,

0

Zdaję sobie sprawę, że jest to stary wątek, na który odpowiednio udzielono odpowiedzi, ale moja reputacja nie jest wystarczająco wysoka, aby skomentować właściwą odpowiedź. Zgodnie z tą odpowiedzią możesz po prostu włożyć zmienną środowiskową do pliku rc:

termcapinfo $TERM ti@:te@zrobił to dla mnie. To jest jak przywołana odpowiedź, ale bez symboli wieloznacznych.


0

W moim przypadku problem z aplikacją Mac Terminal.app polegał na tym, że mój domyślny profil terminala nie deklarował terminala jako xterm-256color. Zmiana wartości w „Deklaruj terminal jako” pod nagłówkiem „Terminfo” na karcie „Zaawansowane” w ustawieniach mojego profilu naprawiła problem.

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.