2012-04-19 7 views
5

Pamiętam w wideo instruktażowym Git, że terminal użytkownika (prawdopodobnie ZSH) został podzielony na dwa; jeden dla standardowych poleceń terminala, a poniżej było coś takiego jak graficzna reprezentacja Git log. Zawsze było widoczne na dole terminalu w ładnych kolorach.Git Zaloguj się Terminal ZSH

terminal screen.

Jak można podzielić ekran terminalu na dwie części i wyświetlić ekran Git (podobny do git log --pretty=format:'%h : %s' --graph) na ekranie terminala?

AKTUALIZACJA: Znalazłem wideo na Vimeo, http://vimeo.com/16018419. Próbuję wykonać dokładnie to samo ustawienie na moim terminalu ZSH.

+1

z filmu wygląda jak robi podziału okna na ekranie GNU. Jeśli rozejrzysz się wokół 6:28, musi on jakoś ręcznie odświeżyć wyświetlacz. Możesz tego dokonać, wykonując standardowy podział ekranu i naciskając q/up, aby ponownie uruchomić polecenie; możesz też prawdopodobnie uruchomić go w pętli, aby zrobić to automatycznie co 10 sekund lub cokolwiek innego. – Dougal

+0

Tak, wygląda na to, że odświeża się ręcznie. W tym momencie mogę przejść z ręcznym odświeżaniem, bez problemu. Czy jesteś pewien, że podzielisz ekran GNU? Myślę, że robi coś innego. Jeśli spojrzysz na pasek przewijania po prawej stronie, pokrywa się od góry do dołu. I jest odświeżający, nie pisząc polecenia powłoki. Nie wiem, może masz rację, ale myślę, że robi coś innego. –

+1

Jeśli spojrzysz na końcowy pasek tytułu, zobaczysz w nim ekran, a te linie statusu będą dla mnie wyglądać jak ekran. Pasek przewijania znajduje się w pliku Terminal.app/iTerm.app, a nie na ekranie, więc ma sens, by obejmował całość. Nie wiem, jak on się odświeża (masz rację, że nie jest to powtórzenie polecenia powłoki), ale ponowne uruchomienie powinno mieć ten sam efekt ... może ma proces w tle wypisujący plik i wykonujący jakiś edytor inkantacja, aby ponownie załadować plik (lub po prostu ponownie uruchomić polecenie wewnątrz edytora), nie jestem pewien. – Dougal

Odpowiedz

6

z tmux, można podzielić panel zsh -c while :; do sleep 60; git log ...; done i powinno to uzyskać automatyczne odświeżanie wyjścia dziennika git w okienku.

doprowadza [-vh] [procent] do podzielonego panelu, aby podzielić pion lub poziom z danym procentem terminalu. iirc, dzieli się od dolnej i/lub prawej strony terminala, więc odpowiednio dostosuj procent.

powinno to przynieść pożądany efekt logowania git w okienku obok $ EDITOR (lub poniżej), o odpowiednich wymiarach i automagicznie odświeżać każdą minutę. możesz dowolnie modyfikować lub czyścić składnię w zależności od potrzeb.

EDYCJA: odradzanie panelu w tmux można wykonać za pomocą wbudowanego tmux respawn-pane. można powiązać kluczową coś takiego dostać prosty skrót

bind-key -n M-R respawn okienku -t git: 0,1 [polecenie]

w tym przykładzie, zakładamy 3 rzeczy. po pierwsze, masz nazwaną sesję tmux (o nazwie git, ale jest to dowolne i do wyboru przy użyciu rename-session w tmux lub przez uruchomienie sesji z new-session -s name). po drugie, że dziennik git (który chcemy odświeżyć) znajduje się w oknie o indeksie 0 (domyślnie jest to pierwsze okno otwarte w sesji, chyba że ustawiono base-index na inną) i okienko indeksu 1.

, więc tutaj odradza się drugi panel pierwszego okna sesji "git", naciskając alt-r. jeśli użyjesz wcześniej podanej pętli, nie będzie to konieczne, ponieważ dziennik odświeży się po każdym śnie. które mogą być dla niektórych nieużyteczne, więc możesz arbitralnie zdecydować się na odrodzenie tego panelu w swoim kaprysie.

[polecenie] jest opcjonalne. tmux's respawn-pane wykona polecenie, które zostało nadane, gdy początkowo został utworzony panel. w tym przykładzie będzie to domyślnie pętla while. jeśli pominiesz pętlę i zamiast tego po prostu użyjesz split-pane [-hv] [percent] "git log ...", nie podawaj opcjonalnego parametru polecenia, ponieważ okienko to uruchomi inteligentnie. przekazanie parametru polecenia do respawn-pane będzie miało pierwszeństwo przed początkowym poleceniem użytym przy spawaniu panelu.

na koniec, jeśli początkowo nie podasz parametru komendy do split-pane, tmux będzie działał niezależnie od wartości default-command.

, więc masz zbyt szczegółowe wyjaśnienie, jak zrobić to, co robi ten film na wiele sposobów.

2

git log --oneline --graph --decorate --color=always dla wyjścia protokołu git.

Funkcja podziału terminali zależy od konsoli.

+0

Znam polecenie Git log. Używam ZSH zarówno na Ubuntu 12, jak i Mac OS X 1.7 i szukałem podziału terminala na dwie części i wyświetlania tego logu Git na dole terminala. Dzięki i tak :) –

+0

@BurakErdem Twoje pytanie wydaje się należeć do SuperUser. – KurzedMetal

1

Dobra,

jest on za pomocą iTerm na Mac, podział jest domyślnie, po prostu trzeba iść na menu lub użyć dowolnego krótkiego polecenia. Możesz to zrobić z terminatorem na ubuntu/linux. Jeśli chcesz kontynuować używanie gnome-terminal, możesz użyć ekranu lub tmux do symulacji tego.

W logu używa on narzędzia Tig (http://jonas.nitro.dk/tig/): narzędzie do przeglądania git. Można go łatwo zainstalować. Przy okazji możesz użyć zegarka do automatycznej aktualizacji swojego logu, dzięki czemu możesz mieć "autolog" na innej części terminala. ;)

watch git log --graph 

Tutaj używam tmux w moim konsoli:

Using tmux with some applications