使用vimscript可以很容易地确定是否使用argc()
为vim指定了文件名。有没有办法确定是否给了-
标志以指定给vim提供了管道输入?它不将管道输入视为文件名,并且argc()
为空。
编辑
感谢以下精彩的答案,如果没有文件名且未使用stndin,我可以打开NerdTree。
let wmuse_nt = 0
autocmd StdinReadPost * let wmuse_nt = 1
autocmd vimenter * if !argc() && wmuse_nt == 0 | NERDTree | endif
最佳答案
您可以使用autocmd在通过StdinReadPre
或StdinReadPost
事件从stdin读取vim之前或之后运行某些内容。帮助复制如下。
StdinReadPost
从stdin读入缓冲区后,
在执行模式线之前。仅用于
当Vim被使用时使用“-”参数
开始-。
标准读
StdinReadPre从stdin读入缓冲区之前。
仅在以下情况下使用“-”参数时使用
Vim已启动-。