1

我尝试通过文件名来识别文件。

例如,我有以下文件:

  • 2300039_2234552_779799_ABC.xml
  • 2234439_2456644_123423_XYZ.xml

和以下自动命令:

autocmd BufRead,BufNewFile *.xml call CheckFileType()

对于测试用例,我只需将当前文件名保存到全局变量中。

function! CheckFileType()
   let g:filename = expand("%:p:t")
endfunction

文件加载完成后,我回显文件名:

echo g:filename

结果:223443~1.XML

但为了识别,我需要完整的文件名!

当我之后重新加载文件并再次回显文件名时,我得到了长文件名。呜呜呜???

此行为仅在从外部加载文件时出现(例如 "C:\Vim\vim73\gvim.exe" --remote-silent C:\2234439_2456644_123423_XYZ.xml)。从实习生(:e)加载时,一切都按预期进行。

有任何想法吗?

提前致谢!

4

1 回答 1

1

我找到了原因;我的 XML-Filetype-Plugin 中的这个小片段导致了我的问题:

if (getfsize(expand("%:8")) < 5000000)
   set foldmethod=syntax
else
   set foldmethod=manual
endif

看来,Vim 记得这个扩展调用......

于 2013-07-30T20:12:04.190 回答