gpt4 book ai didi

vim:函数中的 undefined variable

转载 作者:行者123 更新时间:2023-12-03 15:50:10 26 4
gpt4 key购买 nike

我的 .vimrc文件包括以下几行:

let read_path = '/var/www/html/readContent.html'
function ReadContentProcess()
if (expand('%:p') == read_path)
call feedkeys("\<C-A>")
call feedkeys("\<C-V>")
endif
endfunction

当我跑 call ReadContentProcess() ,我收到以下错误:
Error detected while processing fucntion ReadContentProcess:
Line 1:
E121: Undefined variable: read_path
E15: Invalid expression: (expand('%:p') == read_path)

为什么?我已经定义了 read_path作为变量,为什么 vim 告诉我它不存在?

最佳答案

变量有一个默认范围。在函数外部定义时,它具有全局作用域 g: .在函数内部,它有一个局部作用域 l: .所以你需要通过前缀 read_path 来告诉 vim 你想要哪个变量与 g:

let read_path = '/var/www/html/readContent.html'
function ReadContentProcess()
if (expand('%:p') == g:read_path)
call feedkeys("\<C-A>")
call feedkeys("\<C-V>")
endif
end function

来自 :help g: (及其后面的部分)

全局变量 g:var g:
内部函数全局变量通过“g:”访问。省略这将
访问函数的局部变量。但是 "g:"也可以用在任何其他
如果你喜欢的地方。

局部变量 l:var l:
访问内部函数局部变量时无需预先添加任何内容。
但是你也可以在前面加上“l:”,如果你愿意的话。但是,不预先添加“l:”
您可能会遇到保留变量名称。例如“计数”。它本身
指的是“v:count”。使用 "l:count"你可以有一个局部变量
一样的名字。

关于vim:函数中的 undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34446887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com