LINUX.ORG.RU

zsh inc_append_history не работает (debian 9)

 


0

1

Точнее работает, но до того, как на втором терминале что-то добавляется в хистори, и опа - перестает работать. Записи в хистори все есть.

.zshrc https://bpaste.net/show/71d05c3fb4ed



Последнее исправление: arcan7777 (всего исправлений: 1)

Выложи конфиг на нормальную пасту (bpaste.net, paste.debian.org), чтобы его можно было просто прочитать, а не скачивать.

r3lgar ★★★★★
()

Я так понимаю, что ты хочешь добавленное в хистори во втором терминале увидеть и использовать в первом? Без source ~/.zshrc это работать не будет — история из файла подгружается при инициализации, а не на лету.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

Да ну как так. Разве смысл команды inc_append_history именно не в том, чтобы хватать на лету? Кроме того, у меня это все работало на дебиан 8, правда там другой, корявый, конфиг был.

arcan7777
() автор топика
Ответ на: комментарий от r3lgar

попробовал source ~/.zshrc - все равно не показывает команды с другого терминала. Заметил, что в хистори творится вот такая шляпа:

34354353

vim .zshrc

: 1498312228:0;vim .zshrc

: 1498312232:0;bnbnbn

что происходит?..

arcan7777
() автор топика
Ответ на: комментарий от arcan7777

Разве смысл команды inc_append_history именно не в том, чтобы хватать на лету?

Хватать на лету оно должно по share_history

У меня это выглядит так:

setopt inc_append_history share_history

Оно работает, но после добавления строки в одном терминале, надо в другом переинициализировать промпт (нажать Enter, например). Тоже не особо удобно.

r3lgar ★★★★★
()
Ответ на: комментарий от arcan7777

Разве смысл команды inc_append_history именно не в том, чтобы хватать на лету?

Нет. Ты ман вообще чем читал? Хотя он ужасный, конечно, я бы тоже читать не стал :) Тебе нужно share_history.

anonymous
()
Ответ на: комментарий от arcan7777
: 1498315402:0;man zsh

Это нормально. Первое значение — время, что значит ноль я не копал, дальше идёт команда.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

Вообще никогда не понимал любителей share_history и history -r в $PROMPT_COMMAND (bash). У меня дома обычно шесть-восемь табов в двух окнах, и мне удобнее иметь раздельную историю, а не мешанину слабо связанных команд %)

anonymous
()
Ответ на: комментарий от anonymous

Вообще никогда не понимал любителей share_history и history -r в $PROMPT_COMMAND (bash).

Дело вкуса. Я подобным сам не пользуюсь (inc_append_history полезен, а вот share_history только мешает), у меня вообще в истории хранится только то, что важно и постоянно используется, в остальное время я ставлю пробел перед командой, чтобы она не попадала в хистори.

У меня дома обычно шесть-восемь табов в двух окнах

У меня от трёх до восьми окон (табы не нужны).

и мне удобнее иметь раздельную историю, а не мешанину слабо связанных команд %)

Вот именно, что в каждом терминале совершенно не связанные между собой задачи, разные cwd, даже часто разные переменные или их значения, потому shared_history — зло.

Но ТС просит, а потыкать — не так сложно. (=

r3lgar ★★★★★
()
Ответ на: комментарий от arcan7777

почему формат записи разный

Потому, что у тебя старая хистори, или общая с другим шеллом.

r3lgar ★★★★★
()
Ответ на: комментарий от anonymous

Ноль это время выполнения команды (включается отдельно).

Нашёл описание синтаксиса, но не нашёл как включить.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar
       INC_APPEND_HISTORY_TIME
              This option is a variant of INC_APPEND_HISTORY in which, where possible, the history  entry  is
              written out to the file after the command is finished, so that the time taken by the command is
              recorded correctly in the history file in EXTENDED_HISTORY format.  This means that the history
              entry  will  not  be available immediately from other instances of the shell that are using the
              same history file.

              This option is only useful if INC_APPEND_HISTORY and SHARE_HISTORY are turned off.   The  three
              options should be considered mutually exclusive.

Вот такая норкомания. С надеждой смотрю на развитие fish (xonsh слишком причудливый и мощный для консоли, пожалуй).

anonymous
()
Ответ на: комментарий от anonymous

INC_APPEND_HISTORY_TIME

А, это… У меня не завелось искаропки, а копать глубже в данный момент нет ни желания, ни тем более времени.

fish

Он… специфический, можно даже сказать, что наркоманский. У его разработчиков свои взгляды на то, как должен работать шелл. Для меня идеалом останется POSIX, но без автодополнения + развёртывания путей в стиле zsh жизни нет. В моём юзкейсе fish — это как закручивать гвозди печатной платой.

xonsh

Ещё один питон вместо шелла? Это как минимум оверхед.

r3lgar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.