如何在“正常”命令的表达式中使用变量?


13

通过normal!vimscript 执行某些操作时如何使用变量?

例:

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

这应该将光标someArg向右移动。


4
您需要使用exe "norm!" variable
Christian Brabandt

Answers:


21

execute函数以字符串作为参数,将其扩展并通过常规ex命令执行。因此,您可以执行以下操作:

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

.是一个标准的Vimscript运算符连接字符串。

execute可以缩短为exe

看到 :h :execute


编辑我将在@Christian Brabandt的注释中添加有关点的注释.

医生说:

多个参数串联在一起,中间有一个空格。为避免多余的空间,请使用“。” 运算符,将字符串连接成一个参数。

因此命令可能是:

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

执行的命令将是:

normal! 2l

8
您不需要'。'。exe会将没有空格的字符串连接起来。
Christian Brabandt

1
@ChristianBrabandt认真等待吗?我不知道。
Tumbler41年

@ChristianBrabandt我不知道谢谢你!
statox
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.