客栈~/script.vim,我有:
set runtimepath+=string(substitute(expand("%:p"), 'script\.vim', '', 'g'))
Run Code Online (Sandbox Code Playgroud)
我有一个别名.bashrc:
alias vimscript="vim -S ~/script.vim"
Run Code Online (Sandbox Code Playgroud)
运行string(substitute(expand("%:p"), 'script\.vim', '', 'g'))按预期工作.
问题是在set runtimepath表达式中使用它时,当我调用vimscript终端调用时它不起作用script.vim.当我set rtp在被vimscript调用以检查运行时路径之后在vim中运行时,未显示所需的附加字符串(但其他字符串在那里).
ZyX*_*ZyX 21
我有一些@Laurence Gonsalves的补充回答:
还有«concat和assign»运算符:.=所以
let foo=foo.bar
Run Code Online (Sandbox Code Playgroud)
可以改写为
let foo.=bar
Run Code Online (Sandbox Code Playgroud)码
let &runtimepath.=','.string(path)
Run Code Online (Sandbox Code Playgroud)
将,'/some/path'在您可能需要时追加到&runtimepath ,/some/path.
我想你想要将脚本的路径附加到runtimepath.如果是,那么您的代码应该写成
let &runtimepath.=','.escape(expand('<sfile>:p:h'), '\,')
Run Code Online (Sandbox Code Playgroud)
在脚本中,或
let &runtimepath.=','.escape(expand('%:p:h'), '\,')
Run Code Online (Sandbox Code Playgroud)
从当前编辑会话(假设您正在当前缓冲区中编辑脚本).
命令的右侧位置set不是表达式,而是文字字符串。
set您可以通过使用let选项名称并在选项名称前添加前缀 来操作选项(事物集) &。例如:
let &runtimepath=substitute(expand("%:p"), 'script\.vim', '', 'g')
Run Code Online (Sandbox Code Playgroud)
要附加到runtimepathalet你可以这样做:
let &runtimepath=&runtimepath . ',' . substitute(expand("%:p"), 'script\.vim', '', 'g')
Run Code Online (Sandbox Code Playgroud)
(这.是字符串连接运算符。)
| 归档时间: |
|
| 查看次数: |
10290 次 |
| 最近记录: |