'Normal' komut ifadesinde bir değişken nasıl kullanılır?


13

Bir şey normal!vimscript ile bir şey yürütürken nasıl bir değişken kullanabilir ?

Misal:

function! MyFunction(someArg)
   normal! (a:someArg)l
endfunction

Bu, imleç someArgadımlarını sağa hareket ettirmelidir .


4
kullanmanız gerekirexe "norm!" variable
Christian Brabandt

Yanıtlar:


21

executeİşlevi dize genişler ve aa düzenli ex komutu çalıştırmak, argüman olarak bir dize alır. Böylece şunları yapabilirsiniz:

function! MyFunction(someArg) 
    execute "normal! ". a:someArg. "l" 
endfunction

.Concatenate dizeleri için standart vimscript operatörüdür.

executekısaltılabilir exe.

Görmek :h :execute


DÜZENLEME @Christian Brabandt'ın a ..

Doktor diyor ki:

Birden fazla argüman birleştirilir ve arada boşluk vardır. Ek alandan kaçınmak için "." dizeleri tek bir argümanda birleştirmek için operatör.

Yani komut şöyle olabilir:

execute "normal!" a:someArg . "l"

Yürütülen komut şöyle olacaktır:

normal! 2l

8
'.' exe, dizeleri onsuz bir boşlukla birleştirir.
Christian Brabandt

1
@ChristianBrabandt Cidden bekle? Bunu bilmiyordum.
Tumbler41

@ChristianBrabandt Bunu bilmiyordum teşekkürler!
statox
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.