ZSH вставка из буфера обмена команда занимает несколько секунд для записи в терминал

12

Когда я копирую из буфера обмена длинную строку в своем iTerm, терминал останавливается на несколько секунд.

например, если я скопирую следующий тест и вставлю в консоль iTerm:

echo 'test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test' займет пару секунд, чтобы быть записанным в терминале.

Если команда длиннее, это может занять 15 секунд.

ZSH версия '5.3'

Рауль Мартин
источник
Какую версию OS X / macOS вы используете и на каком оборудовании Apple?
user3439894
Я не знаю, что вы считаете длиной команды в отношении «Если команда длиннее, может занять 15 секунд». но указанная вами команда имеет длину 356 символов, и она мгновенно вставляется в мою систему. Если я скопирую эту команду длиной до 8406 символов, она будет вставлена ​​за 1 секунду. Итак, сколько символов квалифицируется как «Если команда длиннее, может занять 15 секунд»? Кроме того, получаете ли вы те же результаты, если делаете это под другим пользователем в вашей системе, даже если вам необходимо временно создать нового пользователя?
user3439894
Для меня это не мгновенно, вот в чем проблема. Команда, которую я отправляю, занимает 15 секунд, чтобы быть видимой в моей командной строке. Версия High Sierra 10.13.2 (но это происходит и в других версиях) 2.2 Ghz i7, 16 Гб Ram ...
Рауль Мартин
Вы не ответили на последний вопрос из моего другого комментария, который был .... Кроме того, вы получаете те же результаты, если делаете это под другим пользователем в вашей системе, даже если вам необходимо временно создать нового пользователя?
user3439894

Ответы:

18

Последняя проблема связана с Zsh.

oh-my-zsh выполняется bracketed-paste-magic, поэтому я удалил его. Потому что у меня нет менеджера плагинов для этого. Вы должны переопределить файл:$ZSH/lib/misc.zsh

Переопределения будут в этой папке $ZSH_CUSTOM.

Поскольку у меня нет переопределения, я должен был сначала создать папку: mkdir $ZSH_CUSTOM/lib/

И создать копию оригинала cp $ZSH/lib/misc.zsh $ZSH_CUSTOM/lib/.

и отредактируйте файл (используйте ваш любимый редактор):

vi $ZSH_CUSTOM/lib/misc.zsh

Я прокомментировал следующие строки, но вы можете удалить его или изменить условие if.

#if [[ $ZSH_VERSION != 5.1.1 ]]; then
#  for d in $fpath; do
#       if [[ -e "$d/url-quote-magic" ]]; then
#               if is-at-least 5.1; then
#                       autoload -Uz bracketed-paste-magic
#                       zle -N bracketed-paste bracketed-paste-magic
#               fi
#               autoload -Uz url-quote-magic
#               zle -N self-insert url-quote-magic
#      break
#       fi
#  done
#fi

Спасибо и извините за описание вопроса, без знания того, что я использовал zsh, это сделало задачу невозможной для меня.

Больше информации:

Рауль Мартин
источник
1
большое спасибо! вставка curlкоманды из Google Chrome заняла 45 секунд! сейчас <1 сек :)
Джанфранко П.
Вы можете отредактировать $ ZSH / lib / misc.zsh и прокомментировать эти строки. Будет проще ..
Начо
Вот что сказал гадкий
Рауль Мартин
1

Кажется странным, что вы можете скачать и использовать Hyper на macOS, потому что это только окна.

Общая производительность iTerm

Часто задаваемые вопросы с сайта iTerms предлагают это:

Отключить прозрачность и размытие. Используйте сплошной цвет фона, а не изображение.

Вы также можете узнать, сколько триггеров вы активировали, поскольку они, как известно, снижают производительность. Вы можете найти это в Settings -> Profiles -> Advanced -> Triggers.

Вставка производительности в iTerm

Я не смог повторить вашу проблему на моем компьютере с этим коротким текстом, но при увеличении его примерно в 20 раз происходит то же самое. Я предполагаю, что iTerm думает, что вы печатаете, и перерисовывает весь текст каждый раз, когда видит нового персонажа. То же самое происходит с vim в macOS и Ubuntu (см. Здесь введите описание ссылки здесь )

Исправление производительности вставки в iTerm

Там, кажется, не легко исправить эти проблемы с производительностью. Если FAQ не помог, я предлагаю использовать эту команду:

pbpaste >> test.sh && chmod +x test.sh && ./test.sh && rm test.sh

pbpaste обращается к буферу обмена (попробуйте pbpaste самостоятельно) и >> test.sh записывает его в файл test.sh. chmod + x test.sh позволяет запускать test.sh из терминала, ./test.sh запускает его, а rm test.sh удаляет все файлы с именем test.sh. Это работает точно так же, как вставка, но без снижения производительности фактически вставка приносит

joelfischerr
источник
Вы говорите о другом гипер? hyper.is . Нет непрозрачности или размытия. Никаких триггеров :( Это было многообещающе. Pbpaste lit - очень умная линия, но я потеряю скорость из-за того, что мне нужно написать команду / history /
Raúl Martín
Извините, я обнаружил, что в моем вопросе не хватает информации. Спасибо за время ответить!
Рауль Мартин