Vim Windows自动命令文件名=8.3
我试图通过文件名来识别文件 例如,我有以下文件:Vim Windows自动命令文件名=8.3,vim,Vim,我试图通过文件名来识别文件 例如,我有以下文件: 2300039_2234552_779799_ABC.xml 2234439_2456644_123423_XYZ.xml 以及以下自动命令: autocmd BufRead,BufNewFile *.xml call CheckFileType() 对于测试用例,我只是将当前文件名保存到一个全局变量中 function! CheckFileType() let g:filename = expand("%:p:t") endfunc
- 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
但是为了便于识别,我需要完整的文件名
当我随后重新加载文件并再次回显文件名时,我得到了长文件名。
wtf
此行为仅在从外部加载文件时出现(例如“C:\Vim\vim73\gvim.exe”--远程静默C:\2234439_2456644_123423_XYZ.xml)。当从实习生(:e)加载时,一切都如预期的那样
有什么想法吗
提前谢谢 我找到了原因;我的XML文件类型插件中的这个小片段导致了我的问题:
if (getfsize(expand("%:8")) < 5000000)
set foldmethod=syntax
else
set foldmethod=manual
endif
if(getfsize(展开(“%:8”))<5000000)
set foldmethod=语法
其他的
设置foldmethod=手动
恩迪夫
似乎Vim记得这个扩展调用…我找到了原因;我的XML文件类型插件中的这个小片段导致了我的问题:
if (getfsize(expand("%:8")) < 5000000)
set foldmethod=syntax
else
set foldmethod=manual
endif
if(getfsize(展开(“%:8”))<5000000)
set foldmethod=语法
其他的
设置foldmethod=手动
恩迪夫
看起来,Vim记住了这个扩展调用…在
CheckFileType
函数上使用let g:filename=expand(“”
是否也有相同的行为?根据您的应用程序,您也可以尝试bufwanter
。很高兴您解决了这个问题!如果其他人遇到类似问题,发布解决方案作为答案可能是一个好主意。在CheckFileType
函数上使用let g:filename=expand(“”
是否也会得到同样的行为?根据您的应用程序,您也可以尝试bufwinter
。很高兴您解决了它!如果其他人面临类似问题,将解决方案作为一个答案张贴出来,以便于阅读,这也许是一个好主意。