Странный вывод на многострочной команде в Китти?

Я запускаю не GUI ArchLinux на VMWare 14.0. Я установил на него ssh-сервер (через openssh) и подключился к моей виртуальной машине, используя Kitty 0.70 в Windows 10 [Version 10.0.15063].

Моя проблема: когда я использую многострочную команду, вывод команды в Китти действительно странный.


Например:

На клиентском компьютере Kitty:

[ddk@mylinux:~] 14:23:08 $ if [[ -o interactive ]] if> then then> echo 'inter' then> fi then # not my typing echo 'inter' # not my typing fi)inter # not my typing [ddk@mylinux:~] 14:23:34 $ 

На терминале в моей виртуальной машине:

 [ddk@mylinux:~] 14:23:54 $ if [[ -o interactive ]] if > then then > echo interactive then > fi interactive [ddk@mylinux:~] 14:24:37 $ 

Итак, как мне исправить неподходящий вывод на моем китти-ssh-клиенте?

P / S: Я запускаю zsh без каких-либо предварительных конфигураций, таких как oh-my-zsh . Это мой .zshrc .

One Solution collect form web for “Странный вывод на многострочной команде в Китти?”

Как заметил Стефан Чазелас, проблема в вашей функции preexec . Когда вы устанавливаете заголовок терминала, вы используете команду без защиты своих специальных символов. Первая новая строка в команде завершает escape-последовательность для установки заголовка, а остальные строки печатаются.

У вас также будет проблема с обратными косыми чертами и процентами символов в команде, так как print выполняет обратное слэширование, и вы также выполняете быстрое процентное расширение в команде.

Решение заключается в удалении или кодировании управляющих символов и для выполнения обратного слэша для получения управляющих символов отдельно от символов в приглашении. Например:

 set_title () { print -rn $'\e]0;'${${:-${(%):-$1}$2}//[^[:print:]]/_}$'\a' } precmd () { set_title '[%n@%M:%~]' '' } preexec () { set_title '[%n@%M:%~]' ' ($1)' } 
  • Дополнительный вывод при запуске команд из zsh в Guake
  • Расширение имени файла с диапазонов дат
  • Shell glob - заменить файл path arg с содержимым файла
  • Что такое расщепление слов? Почему это важно в программировании оболочки?
  • Как решить nsf-общую связанную ошибку при установке zsh в ubuntu?
  • Автозаполнение Zsh gpg2
  • Различные оболочки для интерактивной и неинтерактивной работы
  • Удалить keymap и полностью отключить ключ в zsh
  • Сортировка строк с помощью escape-кодов ANSI
  • Написание функций zsh, которые работают
  • Как проверить параметр zsh-скрипта в шаблоне или нет?
  • Linux и Unix - лучшая ОС в мире.