Причина, по которой после нажатия Esc должна быть задержка, заключается в том, что не только отдельная клавиша в vi
возвращает из режима INSERT в режим COMMAND, но и генерируется через терминал (эмуляция )в качестве префикса для многих функциональных клавиш.
Например, на моей клавиатуре прямо сейчас F1 генерирует шестнадцатеричную последовательность 1b 4f 50 . Первым из этих(1b)является Esc . Курсор справа 1b 5b 43 . Побег сам по себе 1b .
vi
проводит различие, предполагая, что для последовательности составных клавиш все символы будут вводиться быстро, но при однократном использовании Esc после символа будет небольшая пауза.
Вы можете использовать
printf "%.25s...\n" "dataURI: DFASDFKAJELKJDFSADFMLAKFJLSKDJFAJSDFL"
Или вы можете использовать расширение параметра:
echo "${yourvar:0:25}..."
Хотя с обоими из них, если ваша строка короче 25 символов, она все равно будет включать многоточие.