vimscript 检测管道输入

wma*_*but 3 vim vim-plugin

很容易使用 vimscript 来确定文件名是否通过使用argc(). 有没有办法确定是否-给了标志以指定给 vim 的管道输入?它不将管道输入计为文件名并且argc()为空。

编辑

感谢下面精彩的接受答案,如果没有文件名并且没有使用stndin ,我有办法打开NerdTree 。

let wmuse_nt = 0
autocmd StdinReadPost * let wmuse_nt = 1
autocmd vimenter * if !argc() && wmuse_nt == 0 | NERDTree | endif
Run Code Online (Sandbox Code Playgroud)

FDi*_*off 5

您可以使用 autocmd 在 vi​​m 使用StdinReadPreStdinReadPost事件从标准输入读取之前或之后运行某些内容。帮助复制如下。

                                                        标准读后
StdinReadPost 从 stdin 读入缓冲区后,
                                在执行模型线之前。仅使用
                                当 Vim 使用 "-" 参数时
                                开始了——。
                                                        标准读前
StdinReadPre 在从 stdin 读入缓冲区之前。
                                仅在使用“-”参数时使用
                                Vim 已启动--。