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 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.
e:
:execute ':grep ' . foo
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 "=
Tags vim