Найти тему
Блокнот математика

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

Сегодня сводная заметка: обсудим команды, начинающиеся с g. Сама g является чем-то вроде клавиши shift, открывая возможность дать клавишам другой смысл.

Итак...

g# и g* — поиск слов под курсором, вверх и вниз, как и просто решетка и звездочка. Только поиск ведется без якорей концов слова. То есть, если под курсором слово "42", то g* найдет и "420", и "642", и "1420".

g0 и g$ и g^ — переход на первый/последний символ видимой на экране части строки, а также на первый непробельный.

g& — повтор последней замены на всех строках файла (& — только на текущей).

g'и g` — переход на метку (см. также эту заметку). Отличие от просто ' или ` в том, что не меняется список прыжков.

g+ и g- — переход по дереву отмен. В отличие от u и <C-R>, именно по дереву, а не основной линии истории правок.

g, и g; — переход по списку изменений. Это просто прыжки по тексту, отмены не деляются.

g8 и ga — вывести байты юникодного (возможно, многобайтного) символа под курсором или просто код символа под курсором.

g?, g?g?, g?? — шифрование по движению или всей строки алгоритмом ROT13 (повторное шифрование расшифровывает). Это сдвиг букв английского алфавита на 13 позиций. Букв 26, так что повтор равен отмене.

g<C-A> — это умный инкремент для создания списков.

Напишите "1.", выйдете из режима вставки. Нажмите yy11p, скопировав строку 12 раз. Нажмите V10j, выделив 11 строк. Нажмите g, затем <C-G>. Получите список от 1 до 12. А просто <C-A> прибавляет единицу к числу под курсором, тогда как <C-X> вычитает.

gd, gD — прыжок наверх на определение слова (первое упоминание, с учетом синтаксиса Си или просто первое в файле).

gE и ge — прыжок назад на конец предыдущего слова. Разница в определении слова, как и у пар w-W, B-b, E-e.

gf и gF — переход на файл, имя которого под курсором. Вторая команда позволяет еще и строку указать, например, file.txt 42

gg — переход на первую строку (или можно указать строку: 42gg).

g<C-G> — статистика по файлу и о позиции в тексте. Можно узнать число слов, символов и кое-что еще полезное о тексте.

gh, gH, g<C-H> — включают режим классического выделения текста.Ну, есть такой режим, помимо чисто Вимовского выделения. Выделенный текст замещается первым введенным символом. Может, кому понравится, но вообще полезен для создания разных шаблонов.

gi — начать режим вставки там, где закончился предыдущий (там метка '^).

gI — начать режим вставки в начале строки (на первом символе, пробел это или нет).

gJ — соединяет строки, не вставляя между ними пробел. Просто J вставляет пробел.

gj, gk — переход по строкам (стрелки), но по строкам логическим, что важно при сворачивании.

gm — переход на символ, который в центре экранной строки.

gn, gN — повторить поиск и сразу выделить найденное

go — переход на первый (или указанный) байт файла.

gp, gP — вставить текст из регистра (указанного или безымянного), курсор не перемещать. Просто P и p вставляют, перемещая курсор. Разница между командами в том, что p вставляет после курсора, а P до.

gq и gw — форматирование текста, во втором случае курсор остается на месте.

gR — переход в режим виртуальной замены: текст слева, справа, ниже и выше курсора не двигается, по возможности.

gr — замена символа (или скольких-то символов) в виртуальном режиме: текст, по возможности, не смещается.

gs — заснуть на секунду (или можно указать число секунд). Может пригодиться в скриптах.

gt, gT — переход по вкладкам вправо и влево (потом по кругу). Есть асимметрия: ngt переходит на вкладку номер n, а ngT — на n вкладок влево.

gu, gU и g~ — перевод текста в нижний/верхний/другой регистр

gv — повторно выделить то, что было выделено в прошлый раз.

gx — открыть файл под курсором специальной программой. Например, в тексте присутствует amore_mio.jpg — нажимаем gx и фотография открывается в программе, которая для этого предназначена. Подробнее в другой заметке.

g] — ищет подходящий тег и предлагает выбрать. Команда <C-]> просто переходит на первый подходящий.

g@ — вызывает функцию. Это позволяет создавать свои операторы: команды, обрабатывающие текст по движению.

Все, что в список выше не попало, либо свободно, либо устарело, либо находит очень редкое употребление. Можете смело использовать эти сочетания для своих целей. Также рекомендуется переопределять Q и _, смысл которых не слишком полезен.

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

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

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