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  
zardzewiałe łańcuchy
źródło

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@

pośredni
źródło
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.

dmw
źródło
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@
AB
źródło
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

David Keenan
źródło
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.

lajuette
źródło
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 .

Doug Harris
źródło
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!

Runar
źródło
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?

znak
źródło
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.

kanatzidis
źródło
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.

wachr
źródło