首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是得到(b:.)在VimL?

什么是得到(b:.)在VimL?
EN

Stack Overflow用户
提问于 2019-02-15 01:35:25
回答 2查看 116关注 0票数 0

Vim的vim-评论插件有以下代码段:

代码语言:javascript
复制
function! s:surroundings() abort
  return split(get(b:, 'commentary_format', substitute(substitute(substitute(
        \ &commentstring, '^$', '%s', ''), '\S\zs%s',' %s', '') ,'%s\ze\S', '%s ', '')), '%s', 1)
endfunction

b:get的第一个参数中意味着什么?它似乎与get的任何用途不匹配

get( {list},{idx},{default}) get() Get {idx}。当此项不可用时,返回{default}。省略{default}时返回零。 获取( {dict},{ key },{default})获取具有键{key}的项目,请从财政词典{dict}中获取。当此项不可用时,返回{default}。省略{default}时返回零。 获取( {func},{what})从Funcref {func}获得一个项目。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-15 05:02:16

首先,您需要知道b:是一个前缀-一个内部命名空间(:help b:)。例如,b:commentary_format将是当前缓冲区的局部变量。但是,正如在:help internal-variables中所解释的

作用域名称本身可以用作字典。

您可以测试b:是一个带有:echo b:的字典。

因此,b:foo等同于b:["foo"]。但是,没有办法以这种方式指定默认值。因此,波普使用了第二种形式的get ("Get item with key key from Dictionary dict,当该项目不可用时,返回default")来提供一个可供选择的选项,以防未定义b:commentary_format

票数 4
EN

Stack Overflow用户

发布于 2019-02-15 02:53:45

我想是b:commentary_format,也就是缓冲局部变量

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54701559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档