Vim的vim-评论插件有以下代码段:
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)
endfunctionb:在get的第一个参数中意味着什么?它似乎与get的任何用途不匹配
get( {list},{idx},{default}) get() Get {idx}。当此项不可用时,返回{default}。省略{default}时返回零。 获取( {dict},{ key },{default})获取具有键{key}的项目,请从财政词典{dict}中获取。当此项不可用时,返回{default}。省略{default}时返回零。 获取( {func},{what})从Funcref {func}获得一个项目。
发布于 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。
发布于 2019-02-15 02:53:45
我想是b:commentary_format,也就是缓冲局部变量
https://stackoverflow.com/questions/54701559
复制相似问题