Open gh-liu opened 3 months ago
option 有三种类型:bool(可切换), number, string
如何设置 options:
:set {option}
:set no{option}
:set {option}!
:set {option}?
:set {option}&
:set {option}={value}
:set {option}:{value}
:set {option}+={value}
:set {option}^={value}
:set {option}-={value}
NOTE: option的值如果需要包含`,|,`, 需要在前面加\
`,
,
\
一些 options 可以只对 window 或 buffer 设置 每个 window 或 buffer 自己保存一份这些 options 的值
option 的 scope:
local to buffer
local to window
local to tab page
cmdheight
global-local
一些场景:
:setlocal ...
不会被 copy(使用原窗口值) 的 local window options:
previewwindow
scroll
winfixbuf
winfixheight
winfixwidth
不会被 copy(使用全局值) 的 local buffer options:
filetype
syntax
bufhidden
buftype
readonly
modified
如何设置 local options:
:setlocal[!] ...
:set
:set {option}<
:setlocal {option}<
:setlocal {option}=
如何设置 global options:
:setglobal ...
vim.o
vim.go
:setglobal
vim.bo
:setlocal
vim.wo
vim.wo[winid][0]
vim.opt
vim.opt_global=
vim.opt_local
NOTE: vim.opt 已软弃用
vim options
option 有三种类型:bool(可切换), number, string
如何设置 options:
:set {option}
: bool类型设置on,number/string类型显示当前值:set no{option}
: bool类型设置off:set {option}!
: bool类型值取反:set {option}?
: 获取当前值:set {option}&
: 重置默认值:set {option}={value}
或:set {option}:{value}
: 给number/string类型设置值:set {option}+={value}
: number类型加,string类型附加(若以逗号分割,自动加逗号):set {option}^={value}
: number类型乘,string类型前置(若以逗号分割,自动加逗号):set {option}-={value}
: number类型减,string类型移除(若以逗号分割,自动删逗号)NOTE: option的值如果需要包含
`,
|,
`, 需要在前面加\
local options
option 的 scope:
local to buffer
: 仅作用于当前 buffer, 有默认值local to window
: 可以作用于当前 window 的所有 buffer, 或某个 buffer, 有默认值local to tab page
: 仅作用于当前 tab, 目前仅有cmdheight
, 有默认值global-local
: 有一个 global 值和一个 local 值. 当 local 值不存在时,使用 global 值一些场景:
:setlocal ...
,不同 buffers 在同一 window 可以有不同的 window local options 值special local window/buffer options
不会被 copy(使用原窗口值) 的 local window options:
previewwindow
: 只能有一个 previewwindowscroll
: 特定于当前窗口winfixbuf
: 特定于当前窗口winfixheight
: 特定于当前窗口winfixwidth
: 特定于当前窗口不会被 copy(使用全局值) 的 local buffer options:
filetype
: 通过 autocommands 设置syntax
: 通过 autocommands 设置bufhidden
: 表示 |special-buffers|buftype
: 表示 |special-buffers|readonly
: 自动发现modified
: 自动发现如何设置 local options:
:setlocal[!] ...
: 和:set
一样,但是只设置当前 buffer/window 的 local options,无 local 值则设置 global 值:set {option}<
: 设置 option 的有效值为全局值:string 类型且 local 的 option 值被移除,其余的 option 被全局值覆盖:setlocal {option}<
: 设置 option 的有效值为全局值:bool/number 类型且 local 的 option 值被移除,其余的 option 被全局值覆盖:setlocal {option}=
: 使 string 类型的 local option 为空,则使用 global 值如何设置 global options:
:setglobal ...
: 和:set
一样,但是只设置 global options,但是不修改 local optionsneovim
vim.o
=:set
vim.go
=:setglobal
vim.bo
=:setlocal
for |global-local| option,:set
otherwisevim.wo
= set |global-local| option for current window,:set
otherwisevim.wo[winid][0]
=:setlocal
for |global-local| option,:set
otherwisevim.opt
=:set
vim.opt_global=
:setglobal
vim.opt_local
=:setlocal
NOTE:
vim.opt
已软弃用