AM
local function setopt(mode, opt, value)
vim[mode][opt] = value
if mode ~= 'o' then
vim.o[opt] = value
end
end
Size: a a a
AM
local function setopt(mode, opt, value)
vim[mode][opt] = value
if mode ~= 'o' then
vim.o[opt] = value
end
end
AM
EG
o), локальной для окна (wo) или локальной для буфера (bo)AM
SB
pl
EG
gD на :h vim.lsp.buf.definitionV
vim.lsp.buf.definition():pl
gD на :h vim.lsp.buf.definitionAM
local function setopt(mode, opt, value)
vim[mode][opt] = value
if mode ~= 'o' then
vim.o[opt] = value
end
end
setopt('o', 'number', true) и ничегоEG
setopt('o', 'number', true) и ничего'number' local to windowV
setopt('o', 'number', true) и ничегоEG
setopt('wo', 'number', true)AM
'number' local to windowGK
getpos — функции, которая возвращает позицию в тексте: номер строки и столбца (см. :he getpos). Если попытаться с её помощью определить диапазон выделения visual selection, то каждый unicode-символ считается в два столбца в ширину.function M:visual_selection_range()Вызов этой функции печатает начальную и конечную колонку для выделенной строки.
local _, csrow, cscol, _ = unpack(vim.fn.getpos("'<"))
local _, cerow, cecol, _ = unpack(vim.fn.getpos("'>"))
if csrow < cerow or (csrow == cerow and cscol <= cecol) then
print(cscol - 1, cecol)
return csrow - 1, cscol - 1, cerow - 1, cecol
else
print(cecol - 1, cscol)
return cerow - 1, cecol - 1, csrow - 1, cscol
end
end
test test она выдаёт 0 9, для тест тест — 0 16.getpos?V
getpos — функции, которая возвращает позицию в тексте: номер строки и столбца (см. :he getpos). Если попытаться с её помощью определить диапазон выделения visual selection, то каждый unicode-символ считается в два столбца в ширину.function M:visual_selection_range()Вызов этой функции печатает начальную и конечную колонку для выделенной строки.
local _, csrow, cscol, _ = unpack(vim.fn.getpos("'<"))
local _, cerow, cecol, _ = unpack(vim.fn.getpos("'>"))
if csrow < cerow or (csrow == cerow and cscol <= cecol) then
print(cscol - 1, cecol)
return csrow - 1, cscol - 1, cerow - 1, cecol
else
print(cecol - 1, cscol)
return cerow - 1, cecol - 1, csrow - 1, cscol
end
end
test test она выдаёт 0 9, для тест тест — 0 16.getpos?GK
nvim_buf_get_lines, пройтись по нему циклом и пересчитать настоящий размер выделения, вычитая оффсет для unicode-символов. Но мне кажется, должно быть решение проще.pl
dd$AS
dd$dGpl