Reescreva uma função do Vim para um mapa de uma linha

4

Este funciona:

nmap <silent> <S-t> :call InventTab()<CR>
function InventTab()
    set expandtab!
    if &expandtab
        retab
        echo 'spaces'
    else
        retab!
        echo 'tabs'
    endif
endfunction

Eu tentei mudá-lo para um verso:

nmap <silent> <S-t> :set expandtab!<CR>:if &expandtab<CR>:retab<CR>:echo 'spaces'<CR>:else<CR>:retab!<CR>:echo 'tabs'<CR>:endif<CR>

O problema agora é que ele insiste em imprimir "Pressione ENTER ou digite comando para continuar" depois. Se eu adicionar outro <CR> , ele não fará mais isso, mas a saída echo será limpa.

Como devo escrever isso para ter certeza de que vejo a saída, mas sem material extra?

Resultado (veja o resposta aceita para detalhes):

nmap <silent> <S-t> :set expandtab! ^V| if &expandtab ^V| retab ^V| echo 'spaces' ^V| else ^V| retab! ^V| echo 'tabs' ^V| endif<CR>
    
por l0b0 04.08.2011 / 14:28

1 resposta

3

Substitui o <CR> que você tem entre os comandos com ^V| (onde ^V é um literal ^V inserido digitando Ctrl-v Ctrl-v ) trabalho?

    
por 04.08.2011 / 15:23