在 Vim 中,以前缀 (b:, g:) 开头的设置/命令是什么?

Dmi*_*sky 32 vim

我用 Vundle安装了这个插件,并注意到它有一些设置(自述文件称它们为变量),例如:

b:javascript_fold
Run Code Online (Sandbox Code Playgroud)

g:javascript_conceal
Run Code Online (Sandbox Code Playgroud)

README 说我,“可以将它们添加到您.vimrc的启用/禁用它们的功能中。” 但我不确定如何通过:. 这些变量不能通过set或 获得echo,它们也不是命令或函数。我如何设置/检查这些?

rom*_*inl 54

这些是内部变量。

您可以使用以下:let命令创建和修改它们:

:let g:var_name = 1
Run Code Online (Sandbox Code Playgroud)

你用 摧毁它们:unlet

你用 来检查它们:echo

前缀显示变量的范围;来自:help internal-variables

buffer-variable    b:    Local to the current buffer.
window-variable    w:    Local to the current window.
tabpage-variable   t:    Local to the current tab page.
global-variable    g:    Global.
local-variable     l:    Local to a function.
script-variable    s:    Local to a |:source|'ed Vim script.
function-argument  a:    Function argument (only inside a function).
vim-variable       v:    Global, predefined by Vim.
Run Code Online (Sandbox Code Playgroud)

将这种变量添加到您的代码中~/.vimrc,如下所示:

let g:var_name = 1
Run Code Online (Sandbox Code Playgroud)

通常,只将全局变量添加到您的~/.vimrc. 文件类型插件中,缓冲区局部变量将被使用。

  • 为了完整性:没有前缀:在函数中:局部于函数;否则:全球 (2认同)

Ing*_*kat 11

配置变量不是选项,它们只是“模拟”插件的那些。因此,您不使用:set, but :let(并:echo列出它们的当前值)。

变量前面的符号决定了它的作用域。g:意味着全球;这些通常需要加载插件之前设置,即通过放置

let g:javascript_conceal = 1
Run Code Online (Sandbox Code Playgroud)

进入您的~/.vimrc(并重新启动 Vim)。

由于某些配置仅适用于某些文件类型,因此它们使用b:前缀。设置它们~/.vimrc只会将它们应用于第一个打开的缓冲区,这不是您想要的。相反,您需要挂钩文件类型检测机制。

如果您只想为某些文件类型启用配置选项,请:let b:var = value改用,并将相应的命令放入~/.vim/after/ftplugin/{filetype}.vim,其中{filetype}是实际文件类型(例如javascript)。(这要求您拥有:filetype plugin on; 使用after目录允许您覆盖由 完成的任何默认文件类型设置$VIMRUNTIME/ftplugin/{filetype}.vim。)

或者,您可以:autocmd FileType {filetype} setlocal option=value直接在您的~/.vimrc.

autocmd Filetype javascript let b:javascript_fold = 1
Run Code Online (Sandbox Code Playgroud)