Eu sei que posso excluir do cursor até e incluindo a primeira ocorrência de um caractere x com d/x<CR>
ou com v/x<CR>d
se eu quiser ver a seleção primeiro e depois excluir. Como posso apagar a partir da posição atual do cursor até o n º ocorrência de x ?
Por exemplo, se o cursor estiver após o primeiro espaço no
yada yada yada
yada yada yada x
yada yada yada x
yada yada yada xada
xx
e digito um comando para remover até o terceiro x, o resultado precisa ser:
yada
xx
search
cut-copy-paste
Erwin Rooijakkers
fonte
fonte
f
e amigos (F
,t
,T
,;
): por exemplo2fx
, poderá ir para o segundox
, ou2;
vai repetir a últimaf
duas vezes.Você pode fazer isso digitando
Onde:
fonte
é comumente usado no vim para repetir a macro "n" vezes.
portanto, para excluir até a 1ª ocorrência de x, você usaria
1dfx
. Da mesma forma, para excluir até a 3ª ocorrência de x, você usaria3dfx
.fonte
@x
ondex
está seu registro. O que você está se referindo é um comando no modo normal.<n>macro
não é uma notação padrão no vim para as macros e, como sua resposta usa um comando de modo normal, é praticamente o mesmo que o de kapil.Dado:
onde o
$
fim das linhas indica (:set list
modo), se o cursor estiver no início do segundoyada
na primeira linha, primeiro precisamos fazer backup no espaço anterior usando h, para incluí-lo na exclusão. Então apenas 4d/xEnter. Em outras palavras, apenas uma contagem na frente d/x. O resultado é exatamente:fonte