Я использую oh-my-zsh со следующей конфигурацией истории:

setopt appendhistory autocd extendedglob
setopt EXTENDED_HISTORY
setopt histignoredups sharehistory

В истории поиска Ctrl+R и клавиши со стрелками установлены по умолчанию, то есть:

% bindkey '^r'
"^R" history-incremental-search-backwar

Однако через некоторое время я сталкиваюсь с проблемой, что при поиске команд в истории я получаю первую строку команды с двойной обратной косой чертой в конце, но не другие строки. Фактически, это происходит только тогда, когда обновляется файл истории, если команда свежая и я ищу ее в той же оболочке, в которую я ее ввел, я получу ее правильно, но если я закрою оболочку и снова открою ее, и попытаться извлечь команду из истории, я получу это так:

-> входная команда:

echo \
 "multi-line command"

результат при использовании поиска по истории (bck-i-search: echo):

эхо \

Кто-нибудь знает, что может быть причиной этого? Информация, которую я нашел здесь и в других местах, не помогла :(

Далее я добавляю выдержку из моей истории:

 4453* cd place
 4454* someCommand -d folder \\
 4455*   --opt 1 \\
 4456*   -foo1 bar1 -foo2 bar2 -aeps 0 0.01 0.01 >&! output.log &
 4457* du -sh
 4460* ls *
 4461* exit

Версия zsh для двух хостов, которые не работают: 5.0.2 и 5.0.5.

Затем я добавил одну многострочную команду из-за синтаксиса:

  3723  echo $ZSH_VERSION
  3724  for x in 1 2 3; do echo $x \ndone
  3725* someCommand -d folder \\

который работает нормально. Многострочная цитата, как в:

echo "lala
dquote> dump
dquote> dump
dquote> ok"

в результате чего:

 3732  echo "lala\ndump\ndump\nok"

и который тоже работает нормально.

Этого не происходит на моей локальной машине (zsh версии 5.0.7), что также приводит к многострочным командам с \n вместо double \:

15365  echo \\n multi \\n line \\n command

А также на другом удаленном сервере (4.3.11):

14133  example -d  folder \\n               -pp mpp \\n               -c mcc  \\n               -x mxxz \\n               -r mrr \\n               -e 0 \\n               -o out \\n               -debug

На всех машинах я использую одинаковые файлы конфигурации.

1 ответ1

0

Может быть, это связано с проблемой, описанной здесь? Если это так, то предложенное исправление обновляет zsh до версии 5.0.5.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .