Arrancando várias palavras internas no vim

2

Os objetos de texto da palavra interna e externa no vim se comportam de maneira diferente quando combinados com uma contagem. Dado o texto (o cursor está dentro da palavra first )

first second third fourth

ambos y2iw colocarão a primeira palavra no registrador, y3iw / y4iw as duas primeiras palavras etc. Então eu preciso de pelo menos y7iw para arrancar todas as quatro palavras (internas). Para palavras externas, a contagem dada corresponde ao número de palavras arrancadas.

Por que dois objetos iw correspondem a uma única palavra neste caso, e posso obter iw para se comportar de forma semelhante a aw ?

    
por janeden 26.01.2014 / 10:26

1 resposta

4

Digite 5 ou mais espaços e faça viw : os 5 ou mais espaços são selecionados porque iw também considera \s+ como um "objeto" separado.

No seu exemplo, você tem 7% de objetosiw:

  • yiw yanks first no registro não nomeado.
  • y2iw yanks first (com o espaço à direita) no registro não nomeado.
  • y3iw yanks first second (com o espaço) no registro não nomeado.
  • y4iw yanks first second (com os espaços) no registro não nomeado.
  • E assim por diante…

Por outro lado, aw considera a palavra e qualquer número de espaço seguinte como um "objeto".

No seu exemplo, você tem 4% de objetosaw:

  • yaw yanks first (com o espaço à direita) no registro não nomeado.
  • y2aw yanks first second (com o espaço à direita) no registro não nomeado.
  • y3aw yanks first second third (com o espaço à direita) no registro não nomeado.
  • y4aw yanks first second third fourth no registro não nomeado.

Se você quiser que iw se comporte como aw , use apenas aw .

    
por 26.01.2014 / 10:52

Tags