1

我有以下功能:

function is_file
  set file $argv[1]

  if test ‐f $file
    return 0
  else
    return 1
  end
end

但是在调用它时:

is_file ~/.vimrc

我得到:

test: Missing argument at index 2

我错过了什么?

4

1 回答 1

7

问题是行中的连字符

    if test ‐f $file

它被编码为 Unicode 连字符 U+2010,但它应该是 ASCII 连字符减号 (0x2D),即 Unicode 字符 U+002D。如果我删除连字符并自己重新输入,它对我来说很好。

顺便说一句,这个函数可以写得更简洁:

function is_file
    test -f $argv[1]
end
于 2014-10-29T19:28:22.013 回答