misalnya saya kira begitu
:let foo=pattern
dan sekarang saya ingin melakukan Ggrep patter
tetapi menggunakan variabel foo
bukan patter
string literal .
:echo foo
output pattern
, tetapi
:Ggrep foo
hanya mencari foo
MEMPERBARUI:
membangun string perintah dan kemudian menjalankan: mengeksekusi di atasnya bukanlah solusi, ini adalah hack. Dan itu rusak dengan nilai variabel non-sepele.
Ggrep
(modal G?)?Jawaban:
Ini bukan tentang variabel tetapi mungkin perintah singkat vim dapat membantu. Coba dari baris perintah:
Kemudian
Ini akan melengkapi 'foo' ke 'pola' Anda.
sumber
echo foo
. Oppsecho pattern
yang bukan variabel. ini adalah retasan dan kesalahan arah.bagaimana dengan:
sumber
let xyz = tabpagenr()
itutabnext xyz
. Bahasa skrip Vim sama cacatnya dengan lingkungan modalnya sempurna.Jika Anda tidak menyukai
:exe
solusinya, Anda bisa "membaca" isi variabel ke dalam baris perintah dengan menggunakan=
register ekspresi. Misalnya, ketik:Ggrep
lalu tekan Ctrl- rlalu ketik=foo
dan tekan Enter. Dengan asumsi variabelfoo
berisi "pola", baris perintah Anda sekarang akan terlihat seperti:Ini memiliki keuntungan bahwa Anda dapat melihat perintah aktual yang akan dijalankan, dan bahkan memodifikasinya sebelum menekan Enterkedua kalinya.
Lihat:
sumber