2013-08-21 36 views
2

如何在Windows下的命令行上访问给Vim的参数?如何从VimL获取命令行参数?

我要找的相当于argv[]在C.

在Linux下你可以阅读/proc/self/cmdline。 例子:

vim -c ":echo split(readfile(\"/proc/self/cmdline\", 1)[0], \"\n\")" 

print 

[ 
    'vim', 
    '-c', 
    ':echo split(readfile("/proc/self/cmdline", 1)[0], "\n")' 
] 

argc()argv()不起作用。他们只是返回文件数量。 例子:

vim -c ':echo "argc:" . argc() . ", argv:" . string(argv())' file1 file2 

print 

argc:2, argv:['file1', 'file2'] 
+0

哦,我明白了。这个例子使问题更清楚。不幸的是,没有办法通过Vim获取这些参数。您必须使用与操作系统相关的解决方案,就像您已经做过的那样。 – mhinz

回答

5
:help argc() 
:help argv() 
:help argidx() 

也许还:help argument-list,只是要确定。

简单的例子:

for arg in argv() 
    echo arg 
endfor 
1

在需要的argv [0](即,名字VIM被称为)的特定情况下,可以使用v:progname