Окружить несколько слов цитатами сразу в vim
Мне было любопытно, есть ли способ заключить несколько слов в кавычки, используя vim. Я использую Tpope Surround и повторять, но мне было интересно, есть ли такая команда, как
3ysw"
так из
one two three
в
"one" "two" "three"
3 ответа
Вы можете визуально выбрать диапазон с v3e
и затем запустите на нем команду подстановки: :s/\v(\w+)/"\1"/g
(диапазон '<,'>
должен быть автоматически вставлен).
Лично я предпочел бы окружить одно слово ysw"
, а затем сделать w.w.
(повторяйте так часто, как это необходимо).
Кроме того, запишите макрос, который выполняет оба шага (окружение и переход к следующему слову), а затем вызовите его n раз:
qqysw"3wq
После этого в вашем q
зарегистрироваться, вы можете позвонить 2@q
выполнить окружение на оставшиеся слова.
Если вы хотите добавить в кавычки три слова, начиная с того, в котором находится курсор, вы можете сделать следующее:
bv3ec'<Ctrl+r>"'
b
помещает курсор в начало текущего слова, v
входит в визуальный режим, 3e
прыжки в конце текущей последовательности из 3 слов, c
вырезает выделение и переходит в режим вставки, где вы вставляете левую заключающую в кавычку '
и нажмите <Ctrl+r>"
чтобы вставить текущее содержимое буфера буфера обмена, прежде чем вставлять другую вмещающую кавычку '
,
Опустить ведущий b
если вы начинаете с курсора на первом символе первого слова.
Еще один вариант замены
s,\w\+,"&",g
s ............. substitute current line (add %s for the whole file)
\w\+ .......... one word or more
"&" ........... & represents the whole match on the search part
g ............. every occurrence on the line
OBS: при использовании подстановки мы можем использовать другой разделитель для упрощения ввода. (Также полезно при поиске таких вещей, как "/my/pattern/")