如何使用路径变量在 Vimscript 中设置字典文件?

How to use path variable to set dictionary file in Vimscript?

我只是想在 vimscript 中设置一个字典文件来自动完成。它工作正常,如下所示。

setlocal dictionary+=C:\Users\earik\vimfiles\pack\plugins\start\vim-baan\ftplugin\fontawesome.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:\Users\earik\vimfiles\pack\plugins\start\vim-baan\ftplugin\fontawesome.txt

但是,当我问 Vim setlocal dictionary? 时,我明白了;

dictionary=g:path

不是采用 g:path 的值,而是采用 g:path 作为字符串或路径 。有解决方法吗?非常感谢任何帮助!

您可以使用 :execcute {expr1} ..,它将 {expr1} 的计算结果作为 Ex 命令执行。

execute 'setlocal dictionary+='.g:path

您应该使用处理表达式的 :help :let.=,而不是不处理表达式的 :help :set+=

let &l:dictionary .= ',' .. g:path