vimscript exclui linha inteira ou palavra no modo de comando (q :)

0

Estou tentando descobrir como excluir uma linha inteira no modo de comando. Eu vejo muitos exemplos .vimrc com:

cnoremap <C-a>  <Home>
cnoremap <C-b>  <Left>
cnoremap <C-f>  <Right>
cnoremap <C-d>  <Delete>
cnoremap <M-b>  <S-Left>
cnoremap <M-f>  <S-Right>
" This doesn't delete a word as I'd expect
cnoremap <M-d>  <S-Right><Delete>

Tudo isso funciona conforme o esperado, com exceção de <M-d> . Eu esperaria que excluir uma palavra inteira, mas apenas salta para o final e exclui um único caractere. Existe um <Delete Word> ou <Delete Line> ?

    
por Justin Thomas 07.11.2013 / 03:02

1 resposta

2

Na linha de comando (como no modo de inserção), o comando para excluir uma palavra inteira para trás é <C-w> e o único para excluir a linha inteira até que o cursor seja <C-u> . Eles não são tão difíceis de digitar, então eu não acho que você deve remapear-los em tudo. Enfim…

"delete word, backward
cnoremap <M-d> <C-w>

"delete word, forward
cnoremap <M-d> <S-Right><C-w>

Mas, se você editar bastante na linha de comando, deverá procurar na janela de linha de comando: pressione <C-f> para editar o comando atual ou q: para abrir a janela da linha de comando diretamente.

:help cmdline-widow
:help cmdline-editing
    
por 07.11.2013 / 09:35