0

例子:

function! MkStatusLine()
  let &stl=''
  let &stl.='%{abcd()}'
endfunction

function abcd()
 if this 
    return ' myvalue'
 elseif this
    return ' '
 endif
endfunction

如何退回空间?
return ' ' 被视为 return ''
return 'myvalue' 被视为 return 'myvalue'

4

1 回答 1

1

我怀疑您误解了您的结果,并且您的功能正常工作。检查什么

:echo '#'.abcd().'#'

产生。你应该观察# #而不是##

如果不是,您确定您的函数中只有两条路径吗?

else路径呢?您可以使用以下命令对其进行调试::debug echo abcd(). 从那里您可以转到next 指令,或s插入函数调用,或f结束对当前函数的调用,您可以c继续到下一个断点等。请参阅:h :debug

可以肯定的是,在 VimL 中可以返回空格。如果函数的第一行是 a return ' ',您会看到返回了一个空格。

于 2015-12-16T08:23:36.927 回答