我尝试设置.vimrc
,因此gf
会自动处理缺少文件扩展名的路径,尝试打开与当前FileType相同扩展名的文件。< / p>
换句话说,我想要这样的东西:
autocmd FileType <filetype> setl suffixesadd+=<exts>
其中<exts>
是与当前<filetype>
相关联的所有文件扩展名的列表。
例如,我的filetype.vim
定义了FileType&#34; javascript&#34;作为名称为*.js
,*.javascript
,*.es
,*.jsx
和*.json
的文件,因此每当我编辑javascript缓冲区时,如果光标位于路径./index
,正在运行gf
应尝试打开./index.js
。如果该文件不存在,则应尝试./index.javascript
,依此类推。如果文件类型是python,则应尝试./index.py
,./index.pyw
等
我非常确定上面的autocmd应该产生预期的行为,如果我只为每个FileType运行它,但我不知道该怎么做。
答案 0 :(得分:6)
这些默认扩展名不会以有用的格式存储在任何位置,因此您需要构建自己的列表并循环遍历它以运行自动命令。
类似的东西:
augroup suffixes
autocmd!
let associations = [
\["javascript", ".js,.javascript,.es,.esx,.json"],
\["python", ".py,.pyw"]
\]
for ft in associations
execute "autocmd FileType " . ft[0] . " setlocal suffixesadd=" . ft[1]
endfor
augroup END