43 lines
1.6 KiB
Lua
43 lines
1.6 KiB
Lua
require "nvchad.options"
|
|
|
|
local o = vim.o
|
|
|
|
o.relativenumber = true -- относительные номера строк (5j, 12k)
|
|
o.scrolloff = 8 -- курсор не прижимается к краю экрана
|
|
o.wrap = false -- длинные строки не переносятся
|
|
o.cursorline = true -- подсветка текущей строки
|
|
o.swapfile = false -- без .swp файлов
|
|
o.clipboard = "unnamedplus" -- yank/delete → системный буфер обмена
|
|
|
|
-- Русская раскладка: хоткеи работают как на английской
|
|
vim.opt.langmap =
|
|
"ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,"
|
|
.. "фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz"
|
|
|
|
-- Определение текущей раскладки через im-select (для строки статуса)
|
|
vim.g.im_current_lang = "EN"
|
|
|
|
if vim.fn.executable "im-select" == 1 then
|
|
local im_timer = vim.uv.new_timer()
|
|
im_timer:start(
|
|
0,
|
|
1000,
|
|
vim.schedule_wrap(function()
|
|
vim.fn.jobstart({ "im-select" }, {
|
|
stdout_buffered = true,
|
|
on_stdout = function(_, data)
|
|
if data and data[1] and data[1] ~= "" then
|
|
local new_lang = data[1]:find "Russian" and "RU" or "EN"
|
|
if vim.g.im_current_lang ~= new_lang then
|
|
vim.g.im_current_lang = new_lang
|
|
vim.schedule(function()
|
|
vim.cmd.redrawstatus()
|
|
end)
|
|
end
|
|
end
|
|
end,
|
|
})
|
|
end)
|
|
)
|
|
end
|