No VIM, como você exclui o final da linha enquanto está no modo de comando:?

4

Enquanto estiver no VIM, tenho um atalho de líder para o seguinte:

:!git commit % -m 'updated '; git push;                                                                                                                                                                   

Meu cursor pousa no personagem depois de atualizado assim que eu executar esse atalho de líder. Agora a questão é:

Como faço para excluir até o final dessa linha usando uma tecla de atalho? No bash, seria "CTRL-k", mas isso não funciona aqui. Eu só quero apagar tudo depois da palavra "atualizado".

    
por Patoshi パトシ 30.11.2014 / 22:07

2 respostas

5

Não há um mapeamento de atalhos padrão para fazer o que você pediu. Uma documentação completa da edição do modo de comando pode ser encontrada em :help cmdline-editing . Você é bem-vindo para navegar por ele para encontrar algo útil para você. Mas eu não acho que a função que você pediu está nela.

Eu acho que o modo padrão de edição de linha de comando não requer tal operação. Geralmente, removemos a palavra antes do cursor por <Ctrl-W> sem mover o cursor. Mas, claro, se você tem o seu próprio jeito de editá-lo, você sempre pode dobrar o comportamento do vim a seu favor.

Você pode ter o atalho que deseja mapeando <C-K> para uma função definida para se adequar ao comportamento necessário. Aqui eu escrevo um exemplo. Você pode simplesmente colar o seguinte código no seu ~/.vimrc . Re-source o arquivo. E você pode ter o atalho trabalhando do seu jeito.

cnoremap <C-k> <C-\>estrpart(getcmdline(),0,getcmdpos()-1)<CR>

Se você estiver interessado, isso chama um atalho do modo de comando padrão ( <C-\>e ) para avaliar {expr} e substituir toda a linha de comando pelo resultado. strpart() é uma função de truncamento de strings dada pelo vim.

Após o <C-k> keystroke, o vim extrairá o conteúdo do modo de comando como uma string. E coloque de volta apenas o conteúdo desde o início da string até uma posição antes da posição do cursor. O restante do conteúdo será truncado e, portanto, excluído.

    
por 23.12.2014 / 15:46
4

Depois de digitar : para entrar no modo de comando, ou após inserir seu comando, digite CTRL + f . Seu histórico de comandos aparecerá em uma nova "janela de linha de comando". Uma vez lá, você pode usar D do ponto em que deseja começar a apagar. Então apenas digite para executar seu comando.

    
por 30.11.2014 / 22:55

Tags