当我启动Vim时,我想在以下情况下运行一个autocmd:
- 没有指定文件名。
- 文件为新文件时。
- 文件存在但完全空白时。
在以上三种情况下,我都想运行一个autocmd;具体而言,我想自动启动插入模式为只在上述情况(而不是当我打开一个已经存在和不为空的文件)。
更新:
我试过将以下内容放入我的_vimrc
,但是运气不好(另外,我不确定在vim中是否有一个函数在打开文件之前先计算文件中字符的数量(看是否为零):
if @% == "" || filereadable(@%)
autocmd BufRead,BufNewFile * startinsert
endif
不,这不是重复的。我希望vi仅针对我提到的三个场景以插入模式启动。
—
John Sonderson
好的,很抱歉,但确实看起来像是重复的。;-)我已对您的问题进行了一些编辑,以使差异更加清楚。
—
马丁·图尔诺伊
@JohnSonderson,第一个链接告诉您如何查找是否未提供文件名,第二个链接可以通过使用
—
muru
normal
代替进行修改exec
。
vimrc文件只读一次:Vim启动时。autocmd的内容在每次触发时运行。因此,该
—
马丁·图尔诺伊
if
语句不应位于autocmd 周围,而应位于 autocmd 内部,因此它将在每次触发autocmd时运行。