我正在尝试设置我的 .vimrc
所以gf
通过尝试打开与当前 FileType 具有相同扩展名的文件,将自动处理缺少文件扩展名的路径。
换句话说,我想要这样的东西:
autocmd FileType <filetype> setl suffixesadd+=<exts>
哪里
<exts>
是与当前 <filetype>
关联的所有文件扩展名的列表.例如,我的
filetype.vim
将文件类型“javascript”定义为名称为 *.js
的文件, *.javascript
, *.es
, *.jsx
, 和 *.json
,所以每当我编辑 javascript 缓冲区时,如果光标位于路径 ./index
上, 正在运行 gf
应该尝试打开./index.js
.如果该文件不存在,那么它应该尝试 ./index.javascript
, 等等。如果文件类型是python,则应该尝试./index.py
, ./index.pyw
, 等等。如果我只是为每个 FileType 运行它,我很确定上面的 autocmd 应该会产生预期的行为,但我不确定如何做到这一点。
最佳答案
这些默认扩展名没有以有用的格式存储在任何地方,因此您需要构建自己的列表并循环遍历它以运行您的自动命令。
就像是:
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
关于Vim:gf 文件扩展名基于当前文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33093491/