很容易使用 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)
您可以使用 autocmd 在 vim 使用StdinReadPre或StdinReadPost事件从标准输入读取之前或之后运行某些内容。帮助复制如下。
标准读后
StdinReadPost 从 stdin 读入缓冲区后,
在执行模型线之前。仅使用
当 Vim 使用 "-" 参数时
开始了——。
标准读前
StdinReadPre 在从 stdin 读入缓冲区之前。
仅在使用“-”参数时使用
Vim 已启动--。