Як ви поділитесь історією між терміналами в zsh?


29

Як це можна досягти, щоб кожна введена команда була видно в історії кожного відкритого терміналу?

Якщо у вас відкрито кілька терміналів, історія не поділяється, тобто те, що ви ввели в одну історію терміналів, не відображається в іншому. Придумайте альтернативу Башу PROMPT_COMMAND="history -a"(який зберігає історію до появи підказки).


Дивіться також пов'язані та розширені запитання та відповіді: superuser.com/questions/446594/…
мастило

Відповіді:


36

Застосовуються наступні варіанти:

  • Щоб зберегти кожну команду перед її виконанням (це відрізняється від історії bash - рішення):

    setopt inc_append_history
    
  • Щоб читати файл історії кожного разу, коли викликається історія, а також функції inc_append_history:

    setopt share_history
    

Їх можна встановити у вашому .zshrcфайлі.

Пов’язані для bash:


4
"SHARE_HISTORY: Цей параметр і імпортує нові команди з файлу історії, а також призводить до того, що ваші введені команди будуть додані до файлу історії (останнє схоже на вказання INC_APPEND_HISTORY, яке слід вимкнути, якщо ця опція діє )." (З доданого наголосу вручну ), тобто просто опція INC_APPEND_HISTORY зробить те, що ви хочете.
artfulrobot

3
Насправді, лише варіант SHARE_HISTORY виконає все, що завгодно. Фраза ", яку слід вимкнути, якщо ця опція діє", перекладається на "[INC_APPEND_HISTORY] слід вимкнути, якщо діє [SHARE_HISTORY] варіант". Я перевірив це на zsh 5.1.1 на Ubuntu Xenial.
Лінус Арвер

1
@opert правильний: setopt share_historyце те, що дозволить досягти бажаного результату. @MJB Чи бажаєте ви відредагувати свою відповідь, щоб видалити згадку setopt inc_append_history? Це затьмарює фактичну відповідь.
бон

Назви не залежать від регістру, а підкреслення ігноруються, тому якщо виsetopt | grep histотримаєтеincappendhistoryіsharehistory.
Пабло A

4

Якщо ви використовуєте дивовижний OhMyZSH Robby Russell, він подбає про це та інше.

Дивіться https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh

Це включає setopt inc_append_history.


Це його / її / його. Важливо для роботи з оболонками.
Cees Timmerman

@CeesTimmerman виправлено, дякую. Це важливо для спілкування загалом, я вважаю. Що ви мали на увазі під «Важливим для роботи з оболонками»?
james_womack

1
Опечатка в оболонці може зіпсувати всю вашу систему.
Cees Timmerman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.