Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim检测当前缓冲区的类型_Vim - Fatal编程技术网

Vim检测当前缓冲区的类型

Vim检测当前缓冲区的类型,vim,Vim,我正在制作一个插件,其中的想法是,如果缓冲区是空的,那么你将进入插入模式,否则你将保持在正常模式 当然,这一切都很好,但是您遇到了一些问题,如果您刚刚打开Vim,并且处于默认的空缓冲区中,并且不想在该缓冲区中执行任何操作,该怎么办?您必须先进入正常模式,然后执行:e魔术。这是不可取的,因为它需要更多的工作 所以我的问题是,如何检测当前缓冲区是否为真实文件,是否存在于文件系统中 例如,我想检测缓冲区是否是JS文件,无论是新的还是预先存在的。或者,如果缓冲区是NERDTree缓冲区或插件缓冲区,这类

我正在制作一个插件,其中的想法是,如果缓冲区是空的,那么你将进入插入模式,否则你将保持在正常模式

当然,这一切都很好,但是您遇到了一些问题,如果您刚刚打开Vim,并且处于默认的空缓冲区中,并且不想在该缓冲区中执行任何操作,该怎么办?您必须先进入正常模式,然后执行
:e
魔术。这是不可取的,因为它需要更多的工作

所以我的问题是,如何检测当前缓冲区是否为真实文件,是否存在于文件系统中

例如,我想检测缓冲区是否是JS文件,无论是新的还是预先存在的。或者,如果缓冲区是NERDTree缓冲区或插件缓冲区,这类东西

多谢各位。感谢您的帮助。:)

注:对于那些感兴趣的人,这是一个插件:

请参见
:h%:p
:h expand()


顺便说一句,如果这听起来很粗鲁的话,很抱歉,但是我猜很多长期使用Vim的用户在进入缓冲区时会自动按下a/I,而不考虑它是否存在于驱动器上。所以你可能会考虑保持功能更一致。这涵盖了文件系统问题。谢谢!:)是的,你是对的,人们可能已经习惯了在新文件中进入插入模式。但可能有人想要这个,我想我也可以。你永远不知道,也许有一天这就是你想要的附言:我把你的
==#
编辑成了
=按照我的愿望工作。:)
if expand('%:p') != ''
    " do stuff
endif