2012-04-19 29 views
5

Tôi nhớ trong video hướng dẫn Git rằng thiết bị đầu cuối của người dùng (có thể là ZSH) được chia thành hai; một cho các lệnh thiết bị đầu cuối tiêu chuẩn, và dưới đây có một cái gì đó giống như biểu diễn đồ họa Git log. Nó luôn luôn có thể nhìn thấy ở dưới cùng của thiết bị đầu cuối với màu sắc đẹp.Git Đăng nhập vào ZSH Terminal

terminal screen.

Làm cách nào để phân chia màn hình thiết bị đầu cuối thành hai và hiển thị nhật ký Git (giống như git log --pretty=format:'%h : %s' --graph) trên màn hình thiết bị đầu cuối?

CẬP NHẬT: Tôi tìm thấy video trên Vimeo, http://vimeo.com/16018419. Tôi đang cố gắng thực hiện chính xác thiết lập tương tự trên thiết bị đầu cuối ZSH của mình.

+1

Từ đoạn video có vẻ như ông đang thực hiện chia cửa sổ trong màn hình GNU. Nếu bạn nhìn quanh 6:28, anh ta cũng phải làm mới màn hình bằng cách nào đó. Bạn có thể thực hiện điều đó chỉ bằng cách thực hiện chia tách màn hình chuẩn và nhấn q/up để chạy lại lệnh; bạn cũng có thể chạy nó trong một vòng lặp để làm điều đó tự động sau mỗi 10 giây hoặc bất cứ điều gì. – Dougal

+0

Có, có vẻ như anh ấy đang làm mới theo cách thủ công. Tại thời điểm này, tôi có thể đi với làm mới bằng tay, không có vấn đề gì. Bạn có chắc chắn về việc tách màn hình GNU không? Tôi nghĩ anh ấy đang làm điều gì khác. Nếu bạn nhìn vào thanh cuộn ở bên phải, nó bao gồm từ trên xuống dưới. Và anh ấy đang làm mới, không viết lệnh shell. Tôi không biết, có thể bạn nói đúng nhưng tôi nghĩ anh ấy đang làm điều gì đó khác. –

+1

Nếu bạn nhìn vào thanh tiêu đề của thiết bị đầu cuối, nó sẽ hiển thị màn hình trong đó, và những dòng trạng thái đó trông giống như màn hình với tôi. Và thanh cuộn nằm trong Terminal.app/iTerm.app, không phải màn hình, do đó, nó có ý nghĩa rằng nó sẽ bao gồm đầy đủ. Tôi không chắc làm thế nào anh ta làm mới (bạn đúng rằng nó không rerunning một lệnh shell), nhưng lại chạy nên có tác dụng tương tự ... có lẽ anh ta có một quá trình nền viết ra một tập tin và đang làm một số trình soạn thảo để tải lại tệp (hoặc chỉ chạy lại lệnh bên trong trình chỉnh sửa), không chắc chắn. – Dougal

Trả lời

6

với tmux, bạn có thể chia ngăn cửa sổ zsh -c while :; do sleep 60; git log ...; done và điều này sẽ đạt được đầu ra nhật ký git tự động làm mới trong ngăn.

cung cấp [-vh] [phần trăm] để chia ngăn cửa sổ để phân chia đỉnh hoặc chân trời với một phần trăm nhất định của thiết bị đầu cuối. iirc, nó chia tách từ phía dưới và/hoặc bên phải của thiết bị đầu cuối, do đó điều chỉnh tỷ lệ phần trăm cho phù hợp.

điều này sẽ có tác dụng mong muốn của việc git đăng nhập trong một cửa sổ bên cạnh $ EDITOR (hoặc bên dưới), với kích thước thích hợp và tự động làm mới mỗi phút. cảm thấy tự do thay đổi hoặc làm sạch cú pháp cho phù hợp với nhu cầu của bạn.

EDIT: respawning một ngăn trong tmux có thể được thực hiện với tmux builtin respawn-pane. bạn có thể gắn một cái gì đó quan trọng như thế này để có được một phím tắt đơn giản

bind-key -n M-r respawn-pane git -t: 0.1 [command]

trong ví dụ này, tôi giả định 3 điều. đầu tiên, bạn có một phiên tmux được đặt tên (có tên git, nhưng đây là tùy ý và theo lựa chọn của bạn bằng cách sử dụng rename-session trong tmux hoặc bằng cách khởi chạy phiên với new-session -s name). thứ hai, rằng git log (là cái chúng ta muốn làm mới) nằm ở cửa sổ của chỉ số 0 (đây là cửa sổ đầu tiên được mở trong một phiên, theo mặc định, trừ khi bạn đặt base-index cho người khác) và ngăn chỉ mục 1.

vậy tại đây, nó sẽ hiển thị lại cửa sổ thứ hai của cửa sổ đầu tiên trong phiên "git" bằng cách nhấn alt-r. nếu bạn sử dụng vòng lặp mà tôi đã cung cấp trước đây, điều này là không cần thiết để làm vì nhật ký sẽ tự làm mới sau mỗi lần ngủ. có thể được coi là lãng phí đối với một số người, vì vậy bạn có thể tự ý quyết định giữ lại khung này theo ý thích của bạn.

[lệnh] là tùy chọn. respawn-pane của tmux sẽ thực hiện lệnh được cung cấp khi cửa sổ được sinh ra lúc đầu. trong ví dụ này, nó sẽ là vòng lặp while theo mặc định. nếu bạn bỏ qua vòng lặp và thay vì chỉ sử dụng split-pane [-hv] [percent] "git log ..." thì không cung cấp tham số lệnh tùy chọn vì ngăn sẽ chạy nó cho bạn một cách thông minh. việc cung cấp tham số lệnh tới respawn-pane sẽ được ưu tiên hơn lệnh ban đầu được sử dụng khi sinh ra cửa sổ.

cuối cùng, nếu bạn không cung cấp tham số lệnh vào split-pane ban đầu, tmux sẽ chạy bất kỳ giá trị nào default-command là.

để bạn có giải thích quá chi tiết về cách thực hiện những gì video này thực hiện theo nhiều cách.

2

git log --oneline --graph --decorate --color=always cho đầu ra nhật ký git.

Tính năng chia tách thiết bị đầu cuối tùy thuộc vào bảng điều khiển của bạn.

+0

Tôi biết lệnh nhật ký Git. Tôi sử dụng ZSH trên cả Ubuntu 12 và Mac OS X 1.7 và tôi đang tìm kiếm thiết bị đầu cuối tách thành hai và hiển thị nhật ký Git ở dưới cùng của thiết bị đầu cuối. Cảm ơn anyway :) –

+0

@BurakErdem câu hỏi của bạn dường như thuộc về SuperUser sau đó. – KurzedMetal

1

Okay,

ông đang sử dụng iTerm trên Mac, sự chia rẽ được thực hiện bởi mặc định, bạn chỉ cần đi trên menu hoặc sử dụng bất kỳ lệnh ngắn. Bạn có thể thực hiện điều này với terminator trên ubuntu/linux. Nếu bạn muốn tiếp tục sử dụng gnome-terminal, bạn có thể sử dụng màn hình hoặc tmux để mô phỏng điều này.

Trong nhật ký, anh ấy đang sử dụng tig (http://jonas.nitro.dk/tig/): một công cụ duyệt git. Nó có thể được cài đặt dễ dàng. Bằng cách này bạn có thể sử dụng đồng hồ để tự động cập nhật nhật ký của mình, vì vậy bạn có thể có một "autolog" trên một phần khác của thiết bị đầu cuối của mình. ;)

watch git log --graph 

Ở đây, tôi đang sử dụng tmux trong giao diện điều khiển của tôi:

Using tmux with some applications