por exemplo, suponha que eu fiz
:let foo=pattern
e agora eu quero executar, Ggrep patter
mas use a variável em foo
vez da patter
string literal .
:echo foo
saídas pattern
, mas
:Ggrep foo
apenas procura foo
ATUALIZAR:
construindo uma cadeia de comando e depois executando: executar nela não é uma solução, é um hack. E ele quebra com qualquer valor de variável não trivial.
Ggrep
(G maiúsculo)?Respostas:
Não se trata de variável, mas talvez o comando vim abreviado possa ajudar. Tente na linha de comando:
Então
Ele completará 'foo' no seu 'padrão'.
fonte
echo foo
. Oppsecho pattern
que não é uma variável. isso é um truque e equivocado.A respeito:
fonte
let xyz = tabpagenr()
entãotabnext xyz
. A linguagem de script do Vim é tão falha quanto seu ambiente modal é impecável.Se você não gostar da
:exe
solução, poderá "ler" o conteúdo de uma variável na linha de comando usando o=
registro de expressão. Por exemplo, digite:Ggrep
e pressione Ctrl- re digite=foo
e pressione Enter. Assumindo que a variávelfoo
continha "padrão", sua linha de comando agora deve se parecer com:Isso tem a vantagem de poder ver o comando real que será executado e até modificá-lo antes de pressionar Enteruma segunda vez.
Vejo:
fonte