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