В Vi/Vim, как мне скопировать подстроку внутри строки

#vim #vi #yank

Вопрос:

У меня в конфигурационном файле есть словарь.

 candidates = {'morpheus':(3,1), 'trinity':(3,1), 'neo':(3,1), 'switch':(3,1)}  

Я могу выделить мышью одну пару k/v (например 'neo':(3,1) ), чтобы скопировать и вставить, если мне нужно добавить больше пар k/v в словарь, но есть ли способ с помощью команд клавиатуры vi перейти от текущего курсора к следующей запятой или пробелу, чтобы захватить 'neo':(3,1) пару k/v?

Я знаю, что есть yw слово «дергать», но в этом случае ви останавливается на знаках препинания и не хватает того, что я хочу. Я думаю, что я также могу перемещать символы слева или справа от курсора, но я не хочу считать символы, если могу с этим поделать.

Есть ли способ заставить vi переместиться из текущего положения курсора в следующее пространство или следующий ) символ?

Комментарии:

1. нажмите «v», затем «y» … это приведет к вытягиванию выбранных строк (с помощью «v»), поэтому, если вы хотите ity':(3, скопировать, переместите курсор на «i», затем нажмите «v», затем «y». затем вы можете нажать «p», чтобы вставить

Ответ №1:

yw , что на самом деле означает «переход к следующему слову», а не «переход к слову», не следует воспринимать как единую команду. Это действительно две команды: оператор y , за которым следует движение, w . Это довольно важно, потому что понимание модели «оператор движение» позволяет вам свободно создавать очень выразительные команды редактирования.

В этом случае вы можете переместить курсор на закрытие ) с f) помощью или 2t, , что дает вам две следующие команды:

 yf) y2t,  

См :help f ., :help t , и введение в руководство пользователя модели оператор движение: :help 04.1 .

Ответ №2:

Дерните на следующий пробел (исключая пробел) yt (обратите внимание на пробел в конце, на который дергается персонаж)

Дерните на второй пробел (исключая пробел) y2t

Переместитесь в следующее пространство (включая пространство) yf

Дерни до конца линии y$

Выдерни все, что внутри тока '...' yi'