我有以下功能:
function is_file
set file $argv[1]
if test ?f $file
return 0
else
return 1
end
end
Run Code Online (Sandbox Code Playgroud)
但是在调用时:
is_file ~/.vimrc
Run Code Online (Sandbox Code Playgroud)
我明白了:
test: Missing argument at index 2
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
小智 7
问题是该行中的连字符
if test ?f $file
Run Code Online (Sandbox Code Playgroud)
它被编码为Unicode连字符U + 2010,但它应该是ASCII连字符 - 减号(0x2D),它是Unicode字符U + 002D.如果我删除连字符并自己重新键入,它对我来说很好.
顺便说一下,这个函数可以写得更简洁:
function is_file
test -f $argv[1]
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2164 次 |
| 最近记录: |