Я хочу ввести
½
в режиме vi, но он будет содержать дополнительный символ½
.
Нет.
Что происходит, так это то, что ваш терминал отправляет этот символ в кодировке UTF-8. Это символ U + 00BD, а его кодировка UTF-8 - это две 8-битные последовательности символов, шестнадцатеричные значения которых равны C2
BD
.
vim думает, что вы набираете не в UTF-8. Он считает, что вы набрали два 8-битных символа, первый символ U + 00C2, а затем символ U + 00BD. Следовательно, он вставляет эти два символа.
Заставить vim поверить в то, что вы используете UTF-8, - это путешествие в сложный мир локалей и кодировок. В настоящее время vim считает, что ваш терминал генерирует ввод Latin-1 (ISO 8859-1). Вам нужен vim, чтобы считать, что ваш терминал генерирует ввод UTF-8.
Более того: из того, что скрыто в комментариях к другому ответу, также очевидно, что ваш текст справки также не обрабатывается как UTF-8, что указывает на то, что он не работает внутри UTF-8, вероятно, потому что ваш переменные среды ( LANG
, LC_ALL
и т. д.) не определяют локаль UTF-8. Чтобы vim правильно обрабатывал ввод UTF-8, лучше всего использовать UTF-8 внутри в качестве общей кодировки.
Лучше всего действовать, например,
:set termencoding=utf-8 encoding=utf-8. Но вы также можете настроить переменные среды.
# array declaration
arr=()
#Function to read data from file a and add into array
fun_add_in_array()
{
input=$1
while IFS=',' read -r f1 f2
do
echo "Element1 : $f1"
echo "Element2 : $f2"
arr+=( "$f1" )
done < "$input"
}
#Function to print a array
fun_read_array()
{
arr=("$@")
for i in "${arr[@]}"
do
echo $i
done
}
Создание индексированного массива:
$ declare -a A
$ declare -p A
declare -a A
Добавьте несколько элементов в массив:
$ A+=(foo)
$ A+=(bar)
$ A+=("baz quux")
$ declare -p A
declare -a A=([0]="foo" [1]="bar" [2]="baz quux")
Удалите средний элемент, сделав его массивом с разреженными индексами:
$ unset A[1]
$ declare -p A
declare -a A=([0]="foo" [2]="baz quux")
Удалить последний элемент из массива разреженных индексов:
$ unset A[-1]
$ declare -p A
declare -a A=([0]="foo")