como eu uso um conteúdo variável como um argumento para o comando vim?

9

por exemplo, suponha que eu fiz

:let foo=pattern

e agora quero executar Ggrep patter , mas usar a variável foo em vez da string literal patter .

:echo foo

exibe pattern , mas

:Ggrep foo

apenas procura por foo

ATUALIZAÇÃO:

construindo uma string de comando e então rodando: executar nela não é uma solução, é um hack. E isso quebra com qualquer valor de variável não trivial.

    
por Vitaly Kushner 08.08.2011 / 12:42

3 respostas

2

Não é sobre variável, mas talvez o comando abreviado de vim possa ajudar. Tente na linha de comando:

:abbreviate foo pattern

Então

:Ggrep foo<space>

Ele completará 'foo' no seu 'padrão'.

    
por 24.05.2016 / 15:51
5

e:

:execute ':grep ' . foo
    
por 08.08.2011 / 13:32
2

Se você não gostar da solução :exe , poderá "ler" o conteúdo de uma variável na linha de comando usando o = expression register. Por exemplo, digite :Ggrep e pressione Ctrl - r e digite =foo e pressione Enter . Assumindo que a variável foo continha "padrão", sua linha de comando deve se parecer com:

:Ggrep pattern

Isto tem a vantagem de poder ver o comando atual que será executado e até mesmo modificá-lo antes de pressionar Enter pela segunda vez.

Veja:

:help "=
    
por 24.05.2016 / 20:01

Tags