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?

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.


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 .


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.


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)


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.