Ваш код считывает слова в переменную как одну строку. Он не будет автоматически преобразован в массив.
В bash
вы можете использовать -a
с read
для чтения значений в массив:
read -r -p 'enter array values: ' -a vals
printf 'I got %d values\n' "${#vals[@]}"
Файл уже в формате Unix. Ваша проблема в том, что вы не знаете, что такое линия.
Каждый из ваших абзацев представляет собой одну длинную строку текста . Навигация в Joyvi
(и в Bosticnvi
)осуществляется по линиям,и длинные строки переносятся на несколько строк на экране . Таким образом, движения вверх и вниз перемещают вверх и вниз несколько строк экрана, но на самом деле перемещаются только на следующую/предыдущую строку в документе .
VIM и NeoVIM, а также различные другие vi
клоны предлагают возможность разворачивать строку -с помощью :set nowrap
. В этом случае длинные строки отображаются только частично, с боковой прокруткой, а одна строка представляет собой одну строку экрана. Таким образом, движения вверх и вниз перемещают только одну строку экрана, потому что это то же самое, что и строка документа.
Они также предлагают альтернативные движения. Например, gk перемещает вверх на одну строку экрана, в отличие от k перемещает вверх на одну строку документа.
:help wrap-off
:help gk