Почему в визуальном режиме Vim команда начинается с <, '>? - PullRequest
7 голосов
/ 13 октября 2011

Когда я открываю визуальный режим Vim, например, для отступа блока текста, командная строка всегда начинается с '<,'>.Может ли кто-то сломаться для меня, почему это или, вернее, то, что он делает?Кажется, это как-то связано с маркерами, но я не совсем уверен в этом, основываясь на материалах, которые я прочитал до сих пор.

Ответы [ 5 ]

10 голосов
/ 13 октября 2011

'<,'> в начале вашей командной строки представляет диапазон, который вы выбрали.Это также диапазон теста, к которому будет применяться команда, которую вы собираетесь ввести.

Например, если я выбрал область текста в визуальном режиме, а затем захотел заменить все вхождения «стека»с «переполнением» моя команда будет выглядеть следующим образом:

:'<,'>s/stack/overflow/g

Без визуального режима эту же команду можно было бы выполнить, указав диапазон строк вручную, например:

:1,10s/helo/hello/g
10 голосов
/ 13 октября 2011

'< - это первая строка, выбранная визуально, а '> - последняя строка, выбранная визуально.Это способ, которым Vim применяет вашу команду только к визуальной области.

9 голосов
/ 13 октября 2011

Это диапазон, определяемый двумя специальными отметками (отметка в якоре в тексте с именем «кавычка + 1 буква»)

'<`<К первой строке или символу последнего выбранного визуального элемента. область в текущем буфере. Для блочного режима он также может быть последним символ в первой строке (чтобы можно было определить блок). {не в Vi}. </p>

'> `> К последней строке или символу последнего выбранного визуального область в текущем буфере. Для блочного режима это также может быть первый символ последней строки (чтобы можно было определить блок). Обратите внимание, что применяется «выбор», позиция может быть сразу после Визуальная зона. {не в Vi}.

Источник

4 голосов
/ 13 октября 2011

После выбора в визуальном режиме, например, пять строк, тогда '<,'> означает, что вы выполните команду в этом регионе.

поэтому :'<,'>s/replaceMe/WithThis/g будет применяться только к этому выбору

1 голос
/ 14 октября 2011

Не торопитесь, чтобы добавить некоторые пункты пустяков к уже данным ответам

  • :* обычно означает то же самое (:he cpo-star),

  • нажатие C-u в режиме командной строки удаляет маркер диапазона (фактически, удаляет в начало строки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...