我在写这个问题时找到了这个问题的答案,所以我已经扩大了一点.我想访问--servername参数,以便在我的.vimrc文件中创建动态设置.
通过vim的帮助,我找到了v:servername变量,我的脚本正在运行.但是,现在我很好奇是否可以访问任意命令行参数.例如,如果我想知道vim是处于Lisp模式(-l)还是调试模式(-D),我该怎么做?似乎没有相应的v:变量.
以下是我通过自动填充找到的变量 :help v:<Tab>

是否有一般方法从vimscript访问命令行参数?
Her*_*itz 11
奇怪的是,我认为答案可能是"不,没有直接的方法来访问命令行上指定的启动选项".
该:args命令argv()可用于访问启动时指定的文件名,但这不是您想要的.
我在Vim的论坛上看到有人提供这个解决方案来获取Linux上的启动命令行:
:exe '!tr "\0" " " </proc/' . getpid() . '/cmdline'
Run Code Online (Sandbox Code Playgroud)
我假设在Windows上有类似的命令....
你可以在这里查看该论坛帖子:
我的谷歌搜索表明此功能已被提出但从未实施.然而,我确实提出了一些仍然有效的kludge:
:echo split( system( "ps -o command= -p " . getpid() ) )
# => [ 'vim', ... arguments ... ]
Run Code Online (Sandbox Code Playgroud)
(在OS X Lion上测试过.)
该getpid()函数获取Vim的PID,然后我们用ps外部调用选项只返回进程的"命令"值,然后用于split()将命令拆分为列表.
| 归档时间: |
|
| 查看次数: |
2673 次 |
| 最近记录: |