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
什么';这就是';执行;w&引用+;a:名称';在vim脚本/函数中?_Vim - Fatal编程技术网

什么';这就是';执行;w&引用+;a:名称';在vim脚本/函数中?

什么';这就是';执行;w&引用+;a:名称';在vim脚本/函数中?,vim,Vim,我有以下Vim功能: fu! Create_file_and_write_to_it(name, text) new execute "normal i" . a:text execute "w! " + a:name endfu 我这样称呼这个函数: :call Create_file_and_write_to_it('c:\temp\foo.txt', "here is some text") 虽然它创建了一个新的缓冲区并将所需的文本(即:这里有一些文本)写入缓冲区,但

我有以下Vim功能:

fu! Create_file_and_write_to_it(name, text)

  new 
  execute "normal i" . a:text
  execute "w! " + a:name

endfu
我这样称呼这个函数:

:call Create_file_and_write_to_it('c:\temp\foo.txt', "here is some text")
虽然它创建了一个新的缓冲区并将所需的文本(即:这里有一些文本)写入缓冲区,但它不会将缓冲区写入名为c:\temp\foo.txt或我能看到的任何其他名称的文件。我也没有收到错误消息


这种行为是有原因的,还是我做错了什么,我该如何获得所需的功能?

没关系。。。我找到了

我应该写信的

execute "w! " . a:name
而不是

execute "w! " + a:name

没关系。。。我找到了

我应该写信的

execute "w! " . a:name
而不是

execute "w! " + a:name
而不是

execute "w! " + a:name
这样做:

exec "save! " . a:name
为我工作

而不是

execute "w! " + a:name
这样做:

exec "save! " . a:name

为我工作

除非a:text有一些要触发的特殊序列/映射,否则您也可以使用
put=a:text
除非a:text有一些要触发的特殊序列/映射,您还可以使用
put=a:text

您忘记了文件名中可能有空格:您应该编写
execute“w!”。fnameescape(a:name)
w=a:name
(将
替换为
`
)。您忘记了文件名中可能有空格:您应该编写
执行“w!”。fnameescape(a:name)
w=a:name
(将
替换为
`
)。但这将开始一个新行。但是,您可以执行
normal!i^R^O=a:text^M
但这将开始一个新行。但是,您可以执行
normal!i^R^O=a:text^M