我只是尝试在 vimscript 中设置一个字典文件以进行自动完成。它的工作原理如下。
setlocal dictionary+=C:Usersearikvimfilespackpluginsstartvim-baanftpluginfontawesome.txt
我想做的是,我想将这条长路径存储到一个变量中,并使用它。
let g:path = fnamemodify(resolve(expand('<sfile>:p')), ':h')
let g:path = g:path . 'fontawesome.txt'
setlocal dictionary+=g:path
在这里,我定义了一个全局变量g:path
。由于 fontawesome.txt 文件和脚本文件在同一个文件夹下~ftplugin
,我找到了当前脚本文件的文件位置并在末尾添加 fontawesome.txt。当我做echo g:path
时,它看起来是正确的。
C:Usersearikvimfilespackpluginsstartvim-baanftpluginfontawesome.txt
但是,当我问 Vimsetlocal dictionary?
时,我得到了这个;
dictionary=g:path
它不取g:path
的值,而是取g:path
作为字符串或路径。有解决方法吗?任何帮助都非常感谢!
你应该使用:help :let.=
来处理表达式,而不是:help :set+=
,它不:
let &l:dictionary .= ',' .. g:path
您可以使用:execcute {expr1} ..
,它将{expr1}
计算产生的字符串作为 Ex 命令执行。
execute 'setlocal dictionary+='.g:path