Zsh içindeki terminaller arasındaki geçmişi nasıl paylaşıyorsunuz?


29

Her açık terminalin geçmişinde girilen her komutun görülebilmesi için nasıl başarılabilir?

Birden fazla terminal açıkken, tarih paylaşılmaz, yani bir terminal tarihine girdikleriniz başka birinde görünmüyor. Bash'in alternatifini düşünün PROMPT_COMMAND="history -a"(bu, bilgi istemi görüntülenmeden önceki tarihi korur).


Ayrıca bakınız ilgili ve gelişmiş soru-cevap: superuser.com/questions/446594/…
lumbric

Yanıtlar:


36

Aşağıdaki seçenekler geçerli olacaktır:

  • Yürütülmeden önce her komutu kaydetmek için (bu, bash'nın geçmişinden farklı bir çözümdür):

    setopt inc_append_history
    
  • Her zaman geçmiş dosyasını okumak için işlevsellik yanında aşağıdakiler de çağrılır inc_append_history:

    setopt share_history
    

Bunlar .zshrcdosyanızda ayarlanabilir .

Bash için ilgili:


4
"SHARE_HISTORY: Bu seçenek hem geçmiş dosyadan yeni komutları içe aktarır hem de yazılan komutlarınızın geçmiş dosyasına eklenmesine neden olur (ikincisi, bu seçenek etkinse kapatılması gereken INC_APPEND_HISTORY'yi belirtmek gibidir )." ( Manuel vurguyla eklendi) yani sadece INC_APPEND_HISTORY seçeneği istediğini yapacaktır.
artfulrobot

3
Aslında, yalnızca SHARE_HISTORY seçeneği yalnızca istediğinizi yapar. "Bu seçenek etkinse kapatılması gereken" ifadesi, [[SHARE_HISTORY] seçeneği geçerliyse "[INC_APPEND_HISTORY] olarak çevrilmelidir" ifadesi kapatılmalıdır. Bunu Ubuntu Xenial'daki zsh 5.1.1'de test ettim.
Linus Arver

1
@opert doğru: setopt share_historyistenen sonucu elde edecek olan şey. @MJB, sözünü kaldırmak için cevabınızı düzenlemek ister misiniz setopt inc_append_history? Asıl cevabı gizliyor.
bonh

İsimler küçük harfe duyarlı değildir ve alt göz ardı edilir sen eğer öyleysesetopt | grep histalacakincappendhistoryvesharehistory.
Pablo,

4

Robby Russell'ın müthiş OhMyZSH'sini kullanırsanız, bununla ve daha fazlasıyla ilgilenir.

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

Bu içerir setopt inc_append_history.


Onun / onun. Kabuk işi için önemlidir.
Cees Timmerman

@CeesTimmerman sabit, teşekkür ederim. Genel olarak iletişim için önemli olduğuna inanıyorum. Ne demek "kabuk işi için önemli"?
james_womack

1
Kabuktaki bir yazım hatası tüm sisteminizi bozabilir.
Cees Timmerman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.