我经常在vim中使用gf
来打开光标下的文件。这些文件路径通常使用环境变量。当使用没有花括号的环境变量时,vim可以毫不费力地理解它。但是当使用花括号时,vim无法使用环境变量值。
适用于gf
:
$tools/tools.json
这不适用于gf
:
${tools}/tools.json
有没有办法让vim理解环境变量的花括号语法? 仅供参考,我在Linux(SLES11SP3)上使用TCSH shell,Vim 8.0。
答案 0 :(得分:6)
isfname
设置指定可以出现在文件名中的字符集。默认情况下,它不包括{
和}
。
大多数系统的默认设置为:
isfname=@,48-57,/,.,-,_,+,,,#,$,%,~,=
如果您将其更改为:
isfname=@,48-57,/,.,-,_,+,,,#,$,%,~,=,{,}
然后gf
命令会将${tools}/tools/json
识别为单个文件名。
添加
set isfname+={,}
到你的.vimrc
就可以了。
答案 1 :(得分:3)
您需要将这两行添加到.vimrc
文件中:
set isfname+={,}
set includeexpr=substitute(v:fname ,'\v\$\{(\w+)}','$\1','g')