Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从正常模式映射使用setline()调用vimscript函数_Vim - Fatal编程技术网

从正常模式映射使用setline()调用vimscript函数

从正常模式映射使用setline()调用vimscript函数,vim,Vim,我有一个使用setline()的函数。为了简单起见,我们称之为 function! MyFunc() call setline( ".", "test" ) endfunc 我想从映射调用此函数(使用,)。我知道由于setline()调用,map、

我有一个使用setline()的函数。为了简单起见,我们称之为

function! MyFunc()
    call setline( ".", "test" )
endfunc
我想从映射调用此函数(使用
)。我知道由于setline()调用,
map、
无法工作
imap,,=MyFunc()
原则上是可以工作的,但我通常是从正常模式调用这个函数,而不是从插入模式调用


是否有任何东西可以让我从正常模式调用函数或使用表达式寄存器?

要调用函数,请按以下方式更改映射

:nnoremap ,, :call MyFunc()<cr>
如果函数
MyFunc()
返回 包含要插入的文本的字符串:

function! MyFunc()
    ...
    return 'text for inserting'
endfunction
function! MyFunc()
    ...
    return 'text for inserting'
endfunction