Exibe o resultado do programa na lista de correcções

0

Eu quero compilar um programa dentro do Vim, executá-lo e exibir a saída na lista de correcções rápidas. Eu acho que isso deve funcionar:

:cgetexpr "!cc -o %:r % && ./%:r"

No entanto, isso apenas exibe o seguinte na lista de correções rápidas:

|| !cc -o %:r % && ./%:r

Eu também tentei:

:cgetexpr execute "!cc -o %:r % && ./%:r"

Isso gera um erro:

E121: Undefined variable: execute
E15: Invalid expression: execute "!cc -o %:r % && ./%:r"

Um erro semelhante é mostrado se eu omitir as aspas:

:cgetexpr execute !cc -o %:r % && ./%:r

É possível fazer isso?

    
por David Kennedy 10.05.2017 / 05:24

1 resposta

1

Como :help :cexpr diz, a expressão que segue :cexpr pode ser uma string ou uma lista. Nenhuma das expressões que você tentou avaliar para uma string ou lista da saída de cc . No entanto, :help :cexpr fornece um exemplo que pode ajudá-lo.

:cexpr system('grep -n xyz *')

:cgetexpr é igual a :cexpr , mas não pula para o primeiro erro.

verifiquei que

:cgetexpr system("cc hello.c")

funciona, mas colocar variáveis nesse comando é um pouco mais de trabalho. O seguinte insere o nome do arquivo atual no comando.

:exe 'cgetexpr system("cc '.expand('%').'")'
    
por 10.05.2017 / 07:39

Tags