Vim, текст, выбор · 4 min read · Nov 14, 2025
Как использовать маркеры и выполнять выбор текста в Vim
Когда вы используете текстовые/кодовые редакторы с графическим интерфейсом, некоторые функции являются само собой разумеющимися, такие как выбор текста. Я имею в виду, что большинство из нас даже не считает это функцией. Но это не так для редакторов на основе командной строки, таких как Vim. В частности, для Vim, при использовании только клавиатуры, вам придется выучить определенные команды, чтобы выбрать текст так, как вы хотите. В этом руководстве мы подробно обсудим эту функцию, а также функцию ‘marks’ в Vim.
Но прежде чем мы начнем это делать, стоит упомянуть, что все примеры, команды и инструкции, упомянутые в этом руководстве, были протестированы на Ubuntu 16.04, а версия Vim, которую мы использовали, - 7.4.Предполагая, что у вас есть базовые знания о редакторе Vim (Нет? Не проблема, просто перейдите сюда), вы, вероятно, знаете, что команда ‘d’ позволяет вам вырезать/удалять строку. Но что, если вы хотите вырезать, скажем, 3 строки? Ваш ответ может быть: ‘повторите команду трижды’. Хорошо, но что, если требуется вырезать целый абзац (или, скажем, пару из них)? Является ли практическим решением сначала вручную подсчитать количество строк, а затем выполнить команду ‘d’ (даже если вы используете ‘[n]dd’)?
Нет, это не так. Лучшим решением в этом случае будет выбрать строки, которые вы хотите вырезать/удалить, а затем выполнить команду ‘d’ всего один раз. Вот пример:
Предположим, я хочу вырезать/удалить целый первый абзац раздела ВВЕДЕНИЕ, показанного на скриншоте ниже:

Итак, что я сделаю, так это перемещу курсор в начало первой строки и (убедившись, что я не в режиме вставки) наберу команду ‘V’ (Shift+v). Это приведет к тому, что первая строка будет выбрана, и Vim включит режим визуальной строки.

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

Так что это то, что мы хотели, верно? Теперь просто нажмите ‘d’, и выбранный абзац будет вырезан/удален. Не нужно говорить, что, помимо вырезания/удаления, вы можете выполнить любую другую операцию с выбранным текстом.
Это приводит нас к еще одному важному аспекту: не всегда нужно удалять целую строку или строки; что делать в таких случаях? Это означает, что решение, которое мы только что обсудили, работает только тогда, когда вы хотите выполнить операцию с целыми строками. Что, если требуется удалить первые три предложения в абзаце?
Что ж, для этого тоже есть команда - просто используйте ‘v’ вместо ‘V’ (без одинарных кавычек, конечно). Следующий пример, в котором я использовал ‘v’ и затем выбрал первые три предложения в абзаце:

Двигаясь дальше, иногда данные, с которыми вы работаете, состоят из отдельных столбцов, и может возникнуть необходимость выбрать конкретный столбец. Например, рассмотрим следующий скриншот:
Предположим, требуется выбрать только названия стран, что означает второй столбец текста. Итак, что вы можете сделать в этом случае, так это переместить курсор под первый элемент столбца и нажать Ctrl+v один раз. Теперь, используя клавишу со стрелкой вниз, выберите первую букву каждого названия страны:
А затем, используя клавишу со стрелкой вправо, выберите весь столбец или все названия.
*Совет: Если вы по какой-то причине отменили выбор блока текста и теперь хотите снова его выбрать, просто нажмите ‘gv’ в командном режиме.*
Иногда, работая с большим файлом (например, файлом исходного кода или оболочкой), вы можете захотеть переключиться на определенное место, а затем вернуться к строке, где вы были изначально. Это не проблема, если строки, о которых идет речь, не слишком далеко, или вам нужно делать это время от времени.
Но что, если все наоборот - вам нужно часто прыгать между вашим текущим местоположением и различными удаленными строками в файле. Что ж, решение в этом случае - использовать маркеры. Просто отметьте ваше текущее местоположение, а затем вернитесь к этому местоположению из любого места в файле, просто упомянув имя маркера.
Чтобы отметить строку в vim, используйте команду m, за которой следует буква, представляющая имя маркера (доступные варианты - a-z в нижнем регистре). Например, ma. Теперь, чтобы вернуться к маркеру a, используйте команду ‘a (одинарная кавычка включена).
Совет: Вы можете использовать апостроф ( ') или обратную кавычку () в зависимости от того, хотите ли вы прыгнуть к началу отмеченной строки или конкретно к строке и столбцу маркера.
Существуют различные другие полезные применения маркеров Vim. Например, вы можете поставить маркер на строку, затем перейти к другой строке и выполнить следующую команду:
d'[mark-name]чтобы удалить все между вашим текущим положением и отмеченной строкой.
Двигаясь дальше, вот важная информация из официальной документации Vim:
Каждый файл имеет набор маркеров, идентифицируемых строчными буквами (a-z). Кроме того, существует глобальный набор маркеров, идентифицируемых заглавными буквами (A-Z), которые определяют положение в конкретном файле. Например, вы можете редактировать десять файлов. Каждый файл может иметь маркер a, но только один файл может иметь маркер A.Таким образом, хотя мы обсудили базовое использование строчных букв в качестве маркеров Vim, как и где заглавные буквы полезны. Что ж, следующий отрывок это четко объясняет:
Из-за своих ограничений заглавные маркеры могут на первый взгляд казаться менее универсальными, чем их строчные аналоги, но эта функция позволяет использовать их как своего рода "закладку файла". Например, откройте ваш .vimrc, нажмите mV и закройте Vim. В следующий раз, когда вы захотите отредактировать ваш .vimrc, просто нажмите 'V, чтобы открыть его.И наконец, чтобы удалить маркер, используйте команду ‘delmarks’. Например:
:delmarks aУказанная команда удалит маркер a из файла. Конечно, если вы удалите строку, содержащую маркер, то этот маркер также будет автоматически удален. Для получения дополнительной информации о маркерах обратитесь к документации Vim.
Когда вы начнете использовать Vim в качестве вашего основного редактора, такие функции, как те, которые объяснены в этом руководстве, станут полезными инструментами, которые сэкономят ваше время. Как вы согласитесь, здесь нет большой кривой обучения, связанной с функциями выбора и маркеров, объясненными здесь - все, что требуется, это немного практики.
Для полного охвата статей, связанных с Vim, на HowtoForge, перейдите сюда.
Get new posts in your inbox
No spam. Unsubscribe anytime.