Vim keybinding para excluir até (mas não incluindo) o próximo período

6

Eu notei que um idioma comum na minha edição é o desejo de excluir tudo, mas não incluindo o próximo período. Depois de pesquisar um pouco on-line, descobri que o seguinte comando funcionará (não esperava que as pesquisas funcionassem, mas funcionam):

d/\.

Em seguida, ele destaca todos os períodos da página, portanto, quero seguir isso com :noh .

Eu tentei criar meu próprio mapa:

map <leader>. :normal d/\.<cr>:noh<cr>

Eu escolhi usar :normal porque não tenho certeza de como seria capaz de "dizer" onde eu queria que a pesquisa terminasse. No entanto, isso falha espetacularmente. Não faz nada. Ele mostra na barra de status que ele executa :noh fine, então eu suponho que ele esteja passando pelo comando. Isso simplesmente não funciona.

Quando eu tentei executar o :normal d/\. como um comando sozinho (no Vim), recebi a seguinte mensagem na barra de status:

YR:Aborting command d/

Essa é uma mensagem de erro de Yankring.vim , por isso o desativei temporariamente. Agora, quando eu executo o comando, ele não faz nada. Apenas feliz senta lá.

Para esclarecer: digitar o comando manualmente funciona com ou sem o yankring. É só que não consigo obter nenhum dos vários map s que eu tentei trabalhar, com ou sem yankring.

Eu acredito que a raiz do problema é que quando eu digito d/ normalmente, um prompt aparece para eu pesquisar (esse método funciona bem). Tudo bem e tudo mais, mas existe alguma maneira de automatizar essa ação para que ela possa ser vinculada a <leader>. ?

Se qualquer outra informação for necessária, disponibilizarei isso com prazer.

    
por Reid 05.06.2011 / 17:21

2 respostas

6

Btw, se você quiser deletar uma frase, você pode usar o movimento de sentença como segue:

d)i.

Ou seja, excluindo a frase, incluindo o período e, em seguida, inserindo-o novamente.

d/\. é necessário, se você quiser excluir várias linhas e houver um contexto de documento sem texto, por exemplo linhas vazias entre o texto e você realmente deseja excluir para o próximo período.

Se o período estiver na mesma linha, você pode usar o movimento de antes: dt.

Digitando

:normal d/\.^M

( Ctrl+V + Enter no final)

funciona para mim.

Mas devo dizer que não entendo a necessidade de :normal .

Quero dizer, usando

:map <F10> d/\.<CR>:noh<CR>

a pesquisa começa na posição em que o cursor está localizado e termina no próximo período.

    
por 05.06.2011 / 18:38
11

Se o caractere . estiver na mesma linha que o cursor, você poderá usar dt. ou ct. para entrar no modo de inserção após a exclusão.

    
por 05.06.2011 / 19:03

Tags