VIM: Excluindo da posição atual até um espaço

172

Muitas vezes, ao desenvolver, sou confrontado com um objeto aninhado que gostaria de excluir do código no meio de uma linha como esta:

htmlDoc.WriteLine("<b><h3>" + this.cbAllSyncs.SelectedItem.ToString() + "</h3></b>");

A parte que eu gostaria de excluir é:

this.cbAllSyncs.SelectedItem.ToString()

Eu sei que posso contar o número de palavras e períodos e entrar 7dwpara excluir da minha posição atual do cursor "this". No entanto, o que eu gostaria de fazer é não precisar contar e excluir o espaço com um único comando. Isso é possível?

Blake Blackwell
fonte

Respostas:

343

Tente dtspace. Em geral, dtxexclui da posição atual até pouco antes x. Apenas txmove o cursor para um pouco antes do caractere xna linha atual.

Para excluir até e incluindo o espaço, use dfspace.

amit
fonte
2
Isso funciona muito bem! Isso também me dá uma flexibilidade adicional para chegar a outros pontos dentro desse objeto. Obrigado!
Blake Blackwell
27
df<space>exclui até e incluindo o próximo espaço.
22139 Glenn Jackman
5
igualmente útil, o dfT <espaço> exclui o espaço anterior.
hgmnz 23/10/09
3
Você também pode adicionar uma contagem imediatamente antes tde excluir até muitos caracteres. por exemplo d2t<space>, excluirá até dois espaços.
Waseem
7
Eu sempre uso o mnemônico tcomo 'até stackoverflow.com/questions/7409134/…
acw
71

Você pode usar dWou dEcomo @glenn sugeriu se não quiser excluir o espaço em si.

Uma PALAVRA (W maiúscula) consiste em uma sequência de caracteres não em branco, separados por espaços em branco.

Dê uma olhada nos movimentos da palavra .

CMS
fonte
1
Se eu pudesse votar em duas respostas, votaria, já que isso resolve a pergunta específica que eu fiz. Obrigado pelo link!
Blake Blackwell
5
ou dE- excluir até ao fim da sequência de caracteres não em branco (não inclui o seguinte em branco)
Glenn Jackman
@BlakeBlackwell Quem disse que você não pode votar em duas respostas? Eu já fiz isso nesta questão. Esta é v informação útil.
Javadba 25/05
20

Uma solução possível é usar a exclusão com uma pesquisa.

então digite d/<space>e o vim será excluído até atingir um espaço.

Barkmadley
fonte
2
Isso é mais geral do que dWporque você também pode usá-lo para excluir do cursor qualquer caractere, como 2d/+neste caso - o que excluiria também as concatenações de String.
21430 Dave Jarvis
1
você pode fazer 2dW e isso funciona tão bem. na verdade, considero uma solução melhor, pois também funcionará com guias e outros espaços em branco. Também remove o espaço em branco à direita que você deseja excluir até.
22285 barkmadley
15

Se você deseja excluir de qualquer lugar dentro do WORD, e em um único comando, basta usar daW

(é claro que você pode usar dawse quiser limitar a uma palavra)

Eu o uso bastante porque poupa a mudança para o início da palavra (no seu caso)

Louis
fonte
daw e daW se comportam da mesma forma para mim - ambos excluem a palavra inteira, independentemente da letra em que meu cursor esteja. Não sei por que.
Will
daw não irá excluir os espaços em branco após a palavra, enquanto Daw vai
Louis
4
  • excluir para a posição atual para um exemplo de caractere específico "

    dt "
  • excluir a palavra do cursor de posição fica até o final da palavra

    dw
  • exclua a palavra inteira em que o cursor está, independentemente da posição em que está o cursor, isso também o coloca no modo de inserção para permitir a inserção imediata.

    diw
Naseeruddin VN
fonte
2

dtspaceé a resposta para sua pergunta, mas df+parece que isso resolverá melhor o seu problema.

Dan Goldstein
fonte
Não faz nada por mim.
Guillermo Siliceo Trueba 09/09/11