Я сам столкнулся с этой проблемой, и мне потребовалось довольно много времени, чтобы найти ответ! Итак, вот оно, и у меня это работает.
Чтобы использовать несколько версий unison, установите unison-all
. Затем ...
Использование нескольких версий Unison на клиенте
Выберите конкретную версию для запуска, добавив номер версии, например:
unison-2.40 ...
Или, если вы хотите запустить последнюю версию, вы можете просто ввести:
unison
Использование нескольких версий Unison на сервере
Указать клиентской версии Unison вызвать соответствующую версию Unison на сервере с помощью тега -addversionno
, примерно так:
unison -addversionno
Для получения дополнительных сведений
и если вы все еще получаете
Fatal error: Received unexpected header from the server
, см. это решение .
Нельзя, расширение истории происходит до расширения псевдонима или параметра.
Лично я ненавижу расширение истории и отключаю его в первую очередь.
Здесь, вместо расширения истории, я бы предложил создать виджет, который увеличивает E<n>
число слева от курсора:
increment-episode() {
emulate -L zsh
setopt extendedglob
LBUFFER=${LBUFFER/(#b)(*E)(<->)/$match[1]${(l:${#match[2]}::0:)$((match[2]+1))}}
}
zle -N increment-episode
bindkey '\e+' increment-episode
Затем вы просто нажимаете Вверх , а затем Alt + + , и у вас есть визуальная обратная связь о том, что происходит на каждом этапе, и вы можете отменить/ переделывать/адаптировать по желанию, а не работать вслепую, как с расширением истории csh (функция 70-х годов, которая, по мнению ИМО, имела смысл тогда, но не так много сейчас, когда у нас есть более быстрые и более мощные терминалы и линейные -редакторы ).
Но если вы действительно хотите вслепую оценить код в предыдущей команде в истории с увеличением числа после E
, вы можете сделать:
rerun-with-next-episode() {
emulate -L zsh
setopt extendedglob
local new
new=${${history:0:1}/(#b)E(<->)/E${(l:${#match[1]}::0:)$((match[1]+1))}}
# display it
print -ru2 -- $new
# put it on the history
print -rs -- $new
# evaluate it
eval -- $new
}