【发布时间】:2019-03-20 16:59:55
【问题描述】:
我经常在 vim 中使用 gf 打开光标下的文件。这些文件路径通常使用环境变量,但在 .tcl 脚本文件中,vim 无法使用环境变量。
这适用于 gf:
$tcl_lib/myfile.tcl
这些不适用于 gf:
$env(tcl_lib)/myfile.tcl
$::env(tcl_lib)/myfile.tcl
这些是我尝试过的一些事情:
:set isfname=@,48-57,/,.,-,_,+,,,#,$,%,~,=,{,},(,)
:set isfname=@,48-57,/,.,-,_,+,,,#,$,%,~,=,{,},40-41
:set includeexpr=substitute(v:fname,'\$env(\([^)]\+\))','\$\1','')
有没有办法让 vim 理解 tcl 脚本中环境变量的语法(特别是 'gf' 命令)?
【问题讨论】:
-
您可以将
$tcl_lib添加到您的'path'吗?例如setlocal path=.,$tcl_lib,, -
@PeterRincker 我需要删除源中的“$env(tcl_lib)/”,然后源就会被破坏。
-
理论上你可以不理会
'isfname',只需将$tcl_lib添加到'path'即可。如果您更改'isfname',那么您是正确的,您需要删除或阅读$env(..)之类的结构。 -
@PeterRincker 我确实还原了 isfname 但仍然看到开头的“/”并在根目录中查找而不是“路径”。