Подсчёт столбцов
Функции столбцов преобразуют позицию символа (подсчёт символов с начала буфера) в позицию столбца (подсчёт экранных символов с начала строки).
Эти функции подсчитывают каждый символ в соответствии с количеством столбцов, которые он занимает на экране. Это означает, что управляющие символы занимают 2 или 4 столбца, в зависимости от значения ctl-arrow, а табуляции занимают количество столбцов, зависящее от значения tab-width и от столбца, в котором начинается табуляция. См. Обычный вывод.
Вычисления номера столбца игнорируют ширину окна и количество горизонтальной прокрутки. Следовательно, значение столбца может быть произвольно высоким. Первый (или самый левый) столбец имеет номер 0. Они также игнорируют наложения и свойства текста, за исключением невидимости. Невидимый текст считается имеющим нулевую ширину, если buffer-invisibility-spec не указывает, что невидимый текст должен отображаться как многоточие (см. Невидимый текст).
- Функция: current-column
Эта функция возвращает горизонтальную позицию точки, измеряемую в столбцах, считая от 0 на левом краю. Позиция столбца — это сумма ширин всех отображаемых представлений символов между началом текущей строки и точкой.
- Команда: move-to-column column &optional force
-
Эта функция перемещает точку в столбец в текущей строке. Вычисление столбца учитывает ширины отображаемых представлений символов между началом строки и точкой.
При интерактивном вызове столбец является значением числового префикса аргумента. Если столбец не является целым числом, сигнализируется об ошибке.
Если невозможно переместиться в столбец столбец, потому что он находится посередине многостолбцового символа, такого как табуляция, точка перемещается в конец этого символа. Однако, если force не
nil, а столбец находится посередине табуляции, тоmove-to-columnлибо преобразует табуляцию в пробелы (когдаindent-tabs-modeравноnil), либо вставляет достаточное количество пробелов перед ней (в противном случае), чтобы точка могла переместиться точно в столбец столбец. Другие многостолбцовые символы могут вызывать аномалии, несмотря на force, так как нет способа их разделить.Аргумент force также оказывает влияние, если строка недостаточно длинная, чтобы достичь столбца столбец; если он
t, это означает добавление пробелов в конце строки, чтобы достичь этого столбца.Возвращаемое значение — номер столбца, в который фактически произошло перемещение.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Columns.html