Skip to content

Commit 4af046a

Browse files
committed
chore: replace vim.opt with vim.o
In contrast to vim.opt, vim.o opens the documentation on hover, and provides type hints which will be useful for beginners (and also experts who are just lazy ;). In addition it is more intuitive to get the value of the option (e.g. vim.bo.modifiable instead of vim.opt_local.modifiable:get()). The main downside is that it is less convenient in the cases where vim.opt provides a table (This is tracked in neovim/neovim#20107). So for now I left vim.opt.listchars and vim.opt.rtp unchanged. nvim-lua@c92ea7c
1 parent 534637e commit 4af046a

File tree

2 files changed

+32
-24
lines changed

2 files changed

+32
-24
lines changed

init.lua

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -94,72 +94,77 @@ vim.g.maplocalleader = ' '
9494
vim.g.have_nerd_font = true
9595

9696
-- [[ Setting options ]]
97-
-- See `:help vim.opt`
97+
-- See `:help vim.o`
9898
-- NOTE: You can change these options as you wish!
9999
-- For more options, you can see `:help option-list`
100100

101101
-- Make line numbers default
102-
vim.opt.number = true
102+
vim.o.number = true
103103
-- You can also add relative line numbers, to help with jumping.
104104
-- Experiment for yourself to see if you like it!
105-
vim.opt.relativenumber = true
105+
vim.o.relativenumber = true
106106

107107
-- Enable mouse mode, can be useful for resizing splits for example!
108-
vim.opt.mouse = 'a'
108+
vim.o.mouse = 'a'
109109

110110
-- Don't show the mode, since it's already in the status line
111-
vim.opt.showmode = false
111+
vim.o.showmode = false
112112

113113
-- Sync clipboard between OS and Neovim.
114114
-- Schedule the setting after `UiEnter` because it can increase startup-time.
115115
-- Remove this option if you want your OS clipboard to remain independent.
116116
-- See `:help 'clipboard'`
117117
vim.schedule(function()
118-
vim.opt.clipboard = 'unnamedplus'
118+
vim.o.clipboard = 'unnamedplus'
119119
end)
120120

121121
-- Enable break indent
122-
vim.opt.breakindent = true
122+
vim.o.breakindent = true
123123

124124
-- Save undo history
125-
vim.opt.undofile = true
125+
vim.o.undofile = true
126126

127127
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
128-
vim.opt.ignorecase = true
129-
vim.opt.smartcase = true
128+
vim.o.ignorecase = true
129+
vim.o.smartcase = true
130130

131131
-- Keep signcolumn on by default
132-
vim.opt.signcolumn = 'yes'
132+
vim.o.signcolumn = 'yes'
133133

134134
-- Decrease update time
135-
vim.opt.updatetime = 250
135+
vim.o.updatetime = 250
136136

137137
-- Decrease mapped sequence wait time
138-
vim.opt.timeoutlen = 300
138+
vim.o.timeoutlen = 300
139139

140140
-- Configure how new splits should be opened
141-
vim.opt.splitright = true
142-
vim.opt.splitbelow = true
141+
vim.o.splitright = true
142+
vim.o.splitbelow = true
143143

144144
-- Sets how neovim will display certain whitespace characters in the editor.
145145
-- See `:help 'list'`
146146
-- and `:help 'listchars'`
147-
vim.opt.list = true
147+
--
148+
-- Notice listchars is set using `vim.opt` instead of `vim.o`.
149+
-- It is very similar to `vim.o` but offers an interface for conveniently interacting with tables.
150+
-- See `:help lua-options`
151+
-- and `:help lua-options-guide`
152+
vim.o.list = true
148153
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '' }
149154

150155
-- Preview substitutions live, as you type!
151-
vim.opt.inccommand = 'split'
156+
vim.o.inccommand = 'split'
152157

153158
-- Show which line your cursor is on
154-
vim.opt.cursorline = true
159+
vim.o.cursorline = true
155160

156161
-- Minimal number of screen lines to keep above and below the cursor.
157-
vim.opt.scrolloff = 10
162+
vim.o.scrolloff = 10
158163

159164
-- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`),
160165
-- instead raise a dialog asking if you wish to save the current file(s)
161166
-- See `:help 'confirm'`
162-
vim.opt.confirm = true
167+
vim.o.confirm = true
163168

164169
-- [[ Basic Keymaps ]]
165170
-- See `:help vim.keymap.set()`
@@ -256,8 +261,11 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then
256261
if vim.v.shell_error ~= 0 then
257262
error('Error cloning lazy.nvim:\n' .. out)
258263
end
259-
end ---@diagnostic disable-next-line: undefined-field
260-
vim.opt.rtp:prepend(lazypath)
264+
end
265+
266+
---@type vim.Option
267+
local rtp = vim.opt.rtp
268+
rtp:prepend(lazypath)
261269

262270
-- [[ Configure and install plugins ]]
263271
--
@@ -328,7 +336,7 @@ require('lazy').setup({
328336
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
329337
opts = {
330338
-- delay between pressing a key and opening which-key (milliseconds)
331-
-- this setting is independent of vim.opt.timeoutlen
339+
-- this setting is independent of vim.o.timeoutlen
332340
delay = 0,
333341
icons = {
334342
-- set icon mappings to true if you have a Nerd Font

lua/kickstart/plugins/lint.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ return {
5252
-- Only run the linter in buffers that you can modify in order to
5353
-- avoid superfluous noise, notably within the handy LSP pop-ups that
5454
-- describe the hovered symbol using Markdown.
55-
if vim.opt_local.modifiable:get() then
55+
if vim.bo.modifiable then
5656
lint.try_lint()
5757
end
5858
end,

0 commit comments

Comments
 (0)