Найти в Дзене
Блокнот математика

Рубрика "Секреты Вим". Команды на z

Ранее у нас уже был обзор команд g-серии: эта клавиша сама не команда, но позволяет расширить набор команд. Еще одна клавиша, которая сама не команда, но позволяет определить еще много команд — z. Обсудим их. Они более структурированы, нежели g-команды. Можно выделить четыре группы. Первая — это команды сдвига экрана (скроллинга). В их числе три удобные команды : z<CR>, z. и z-, которые, соответственно, перемещают строку с курсором наверх, в центр и в низ окна, а сам курсор — на первый непробельный символ. Команды zt, zz, zb делают то же, но курсор остается в той же позиции. Есть вариант zN<CR>, где можно указать число N перед нажатием энтер: тогда еще и окно изменит высоту. Команда z+ фактически аналогична z<CR>. Команда z^ прыгает на указанную строку, по умолчанию это строка на одну выше окна. Еще есть вторая группа команд, смещающих текст как целое по горизонтали (горизонатльный скроллинг); текст при этом, естественно, не меняется, меняется только его положение на экране. Они пол

Ранее у нас уже был обзор команд g-серии: эта клавиша сама не команда, но позволяет расширить набор команд. Еще одна клавиша, которая сама не команда, но позволяет определить еще много команд — z.

Обсудим их. Они более структурированы, нежели g-команды. Можно выделить четыре группы.

Первая — это команды сдвига экрана (скроллинга). В их числе три удобные команды : z<CR>, z. и z-, которые, соответственно, перемещают строку с курсором наверх, в центр и в низ окна, а сам курсор — на первый непробельный символ. Команды zt, zz, zb делают то же, но курсор остается в той же позиции. Есть вариант zN<CR>, где можно указать число N перед нажатием энтер: тогда еще и окно изменит высоту. Команда z+ фактически аналогична z<CR>. Команда z^ прыгает на указанную строку, по умолчанию это строка на одну выше окна.

Еще есть вторая группа команд, смещающих текст как целое по горизонтали (горизонатльный скроллинг); текст при этом, естественно, не меняется, меняется только его положение на экране. Они полезны, если выключено сворачивание (set nowrap) и строки уходят за край.

Это zH и zL, которые смещают текст на полэкрана вправо и влево; zs и ze, которые сдвигают текст так, чтобы курсор оказался на левом/правом краю; zh и zl, смещающие текст на указанное число символов вправо/влево (по умолчанию 1) и имеющие синонимы z→ и z←

Третья группа команд касается проверки орфографии. Там немного команд: z= выводит предложения (если включена проверка), zG и zg помечают слово как правильное, zW и zw — как неправильное. Разница в том, что команды в нижнем регистре помещают слово в словарь (см. переменную dictionary), а в верхнем — во временный список, который не сохраняется при выходе из Вим.

Четвертая группа, в которой большинство z-команд — это команды, связанные с фолдингом. Все такие команды начинаются с z. Эта буква визуально похожа на складку)).

Про фолдинг был подробный материал. Если кратко, то фолд — это строки, свернутые так, что видна только одна. Фолд визуально отмечается слева в столбце, который задается опцией foldcolumn.

415 +-- 16 lines: FUNCTION vecvec(x,y) result(dp)-----------
Здесь свернуто 16 строк, начиная с 415-ой, и мы видим первую. Можно и мышкой открыть или закрыть фолд.

Фолды можно открывать, закрывать, удалять, копировать и перемещать как целое (весь текст). Создавать фолды можно вручную, командами, а также они могут создаваться сами: по синтаксису, по отступам и другими способами (опция foldmethod). Так, вы можете увидеть только заголовки функций своего кода, а открыв фолд, увидеть структуру функции: блоки if, блоки циклов и т.п. Каждый фолд можно открыть и редактировать.

Или вы можете увидеть свою диссертацию или книгу как оглавление, и потом открывать главы, параграфы и подпараграфы, редактируя их как будет угодно. Хотя диссерт лучше в виде набора файлов, конечно.

Или список можно оформить отступами и тоже сворачивать пункты, подпункты и подподпункты.

Открыть фолд: zo. Открыть фолд и все вложенные фолды: zO.

Симметрично, закрыть: zc и zC.

Создать фолд: zf, затем движение, или можно применить к выделению.

Удалить фолд: zd. Удаляется только фолд, но не текст!

Удаление фолда как строки, например dd, удалит весь свернутый текст.

Фолдинг используется при сравнении файлов vimdiff. Сворачивается совпадающий текст.

При экспорте текста в HTML можно сохранить фолды, и они будут разворачиваться в браузере! Так можно легко сделать какой-нибудь мануал.

Удачи, коллеги!

Путеводитель по рубрике

Путеводитель по каналу