Làm thế nào để bạn chia sẻ lịch sử giữa các thiết bị đầu cuối trong zsh?


29

Làm thế nào nó có thể đạt được để mọi lệnh được nhập, hiển thị trong lịch sử của mọi thiết bị đầu cuối mở?

Khi mở nhiều thiết bị đầu cuối, lịch sử không được chia sẻ, tức là những gì bạn đã nhập trong một lịch sử thiết bị đầu cuối, sẽ không hiển thị trong một thiết bị đầu cuối khác. Hãy nghĩ về một giải pháp thay thế cho Bash PROMPT_COMMAND="history -a"(lưu lịch sử trước khi dấu nhắc được hiển thị).


Xem thêm liên quan và Q & A tiên tiến: superuser.com/questions/446594/...
lumbric

Câu trả lời:


36

Các tùy chọn sau sẽ được áp dụng:

  • Để lưu mọi lệnh trước khi nó được thực thi (điều này khác với giải pháp lịch sử -a của bash):

    setopt inc_append_history
    
  • Để đọc tệp lịch sử mọi lúc, lịch sử được gọi cũng như các chức năng từ inc_append_history:

    setopt share_history
    

Đây có thể được thiết lập trong .zshrctập tin của bạn .

Liên quan đến bash:


4
"SHARE_HISTORY: Tùy chọn này vừa nhập các lệnh mới từ tệp lịch sử, vừa khiến các lệnh đã nhập của bạn được thêm vào tệp lịch sử ( tùy chọn này giống như chỉ định INC_APPEND_HISTORY, nên tắt nếu tùy chọn này có hiệu lực )." (Từ tay nhấn mạnh thêm) tức là chỉ cần tùy chọn INC_APPEND_HISTORY sẽ làm những gì bạn muốn.
artfulrobot

3
Trên thực tế, chỉ có tùy chọn SHARE_HISTORY sẽ làm những gì bạn muốn. Cụm từ "nên tắt nếu tùy chọn này có hiệu lực" dịch thành "[INC_APPEND_HISTORY] sẽ bị tắt nếu tùy chọn [SHARE_HISTORY] có hiệu lực". Tôi đã thử nghiệm điều này trên zsh 5.1.1 trên Ubuntu Xenial.
Linus Arver

1
@opert là chính xác: setopt share_historylà những gì sẽ đạt được kết quả mong muốn. @MJB bạn có sẵn sàng chỉnh sửa câu trả lời của mình để xóa đề cập đến setopt inc_append_historykhông? Nó che khuất câu trả lời thực tế.
bonh

Tên không phân biệt chữ hoa chữ thường và dấu gạch dưới được bỏ qua vì vậy nếu bạnsetopt | grep histsẽ nhận đượcincappendhistorysharehistory.
Pablo A

4

Nếu bạn sử dụng OhMyZSH tuyệt vời của Robby Russell, nó sẽ quan tâm đến vấn đề này và hơn thế nữa.

Xem https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh

Điều đó bao gồm setopt inc_append_history.


Đó là của anh ấy / cô ấy / nó. Quan trọng đối với công việc vỏ.
Cees Timmerman

@CeesTimmerman đã sửa, cảm ơn bạn. Tôi tin rằng nó rất quan trọng đối với giao tiếp. Ý của bạn là "Quan trọng đối với công việc vỏ"?
james_womack

1
Một lỗi đánh máy trong trình bao có thể làm hỏng toàn bộ hệ thống của bạn.
Cees Timmerman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.