如何使用路径变量在 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
我只是想在 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